summaryrefslogtreecommitdiff
path: root/daemon/gvfsbackendtrash.c
Commit message (Collapse)AuthorAgeFilesLines
* trash: Use the symbolic names for trash:: attributesBastien Nocera2013-03-141-3/+3
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=695836
* Add symbolics support to the backendsWilliam Jon McCann2012-08-301-0/+5
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=681458
* trash: Make it possible to get to real URIBastien Nocera2012-07-131-1/+14
| | | | | | | So that the files can be poked direction, without the indirection. This makes it possible for Totem to play DVDs from the trash for example. https://bugzilla.gnome.org/show_bug.cgi?id=667794
* Don't always overwrite on trash restoreAlexander Larsson2009-10-081-1/+1
| | | | | | We want to get overwrite dialogs when restoring from trash. https://bugzilla.gnome.org/show_bug.cgi?id=596618
* [TRASH] pass cancellables to GFile operationsBenjamin Otte2009-06-101-10/+17
| | | | | | No operations in the trash backend passed the job's cancellable on. This patch fixes this. It also passes on the progress callback in trash_backend_pull
* Convert all spew to g_debug()Alexander Larsson2009-03-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2009-03-06 Alexander Larsson <alexl@redhat.com> * daemon/daemon-main.c: * daemon/gvfsbackend.c: * daemon/gvfsbackendburn.c: * daemon/gvfsbackenddav.c: * daemon/gvfsbackendhttp.c: * daemon/gvfsbackendobexftp.c: * daemon/gvfsbackendtrash.c: * daemon/gvfsdaemon.c: * daemon/gvfsjobcloseread.c: * daemon/gvfsjobclosewrite.c: * daemon/gvfsjobcopy.c: * daemon/gvfsjobdbus.c: * daemon/gvfsjobenumerate.c: * daemon/gvfsjobmount.c: * daemon/gvfsjobmove.c: * daemon/gvfsjobpull.c: * daemon/gvfsjobpush.c: * daemon/gvfsjobread.c: * daemon/gvfsjobseekread.c: * daemon/gvfsjobseekwrite.c: * daemon/gvfsjobunmount.c: * daemon/gvfsjobwrite.c: * daemon/mount.c: Convert all spew to g_debug() svn path=/trunk/; revision=2297
* Bug 570533 – use g_set_error_literalCosimo Cecchi2009-02-131-12/+12
| | | | | | | | | | | | | | | | 2009-02-13 Cosimo Cecchi <cosimoc@gnome.org> Bug 570533 – use g_set_error_literal * daemon/gvfsbackendobexftp.c: (_push_single_file_helper): * daemon/gvfsbackendtrash.c: (trash_backend_get_file), (trash_backend_open_for_read), (trash_backend_delete), (trash_backend_pull): * daemon/trashlib/trashitem.c: (trash_item_delete): use g_set_error_literal() when appropriate. Patch by Christian Persch. svn path=/trunk/; revision=2214
* Bug 570481 – Please add translator commentsRyan Lortie2009-02-041-2/+2
| | | | | | | | | | | | 2009-02-04 Ryan Lortie <desrt@desrt.ca> Bug 570481 – Please add translator comments * daemon/gvfsbackendtrash.c: use clearer language to make it easier to translate (not to mention, easier to understand in English). svn path=/trunk/; revision=2199
* nail a couple of leaksRyan Lortie2009-01-201-0/+2
| | | | | | | | | 2009-01-20 Ryan Lortie <desrt@desrt.ca> * daemon/gvfsbackendtrash.c: nail a couple of leaks svn path=/trunk/; revision=2175
* don't insta-thaw deletes use a timeout to only call thaw() once per batchRyan Lortie2009-01-121-0/+25
| | | | | | | | | | | 2009-01-12 Ryan Lortie <desrt@desrt.ca> * daemon/trashlib/trashitem.c: don't insta-thaw deletes * daemon/gvfsbackendtrash.c: use a timeout to only call thaw() once per batch of delete method calls. svn path=/trunk/; revision=2167
* add trash::orig-path and trash::deletion-date infoRyan Lortie2008-12-161-6/+21
| | | | | | | | | | 2008-12-16 Ryan Lortie <desrt@desrt.ca> * daemon/gvfsbackendtrash.c (trash_backend_add_info): add trash::orig-path and trash::deletion-date info svn path=/trunk/; revision=2142
* relicense to LGPLv2+GVFS_1_1_2Ryan Lortie2008-12-151-2/+5
| | | | | | | | | | 2008-12-15 Ryan Lortie <desrt@desrt.ca> * daemon/gvfsbackendtrash.c: * daemon/gvfsbackendtrash.h: relicense to LGPLv2+ svn path=/trunk/; revision=2138
* Fix dist issuesAlexander Larsson2008-12-151-2/+2
| | | | | | | | | | | 2008-12-15 Alexander Larsson <alexl@redhat.com> * daemon/gvfsbackendtrash.c: * daemon/trashlib/Makefile.am: Fix dist issues svn path=/trunk/; revision=2137
* Fix memory leaks on trash backendRyan Lortie2008-12-121-68/+108
| | | | | | | | | | | | | | | | 2008-12-12 Ryan Lortie <desrt@desrt.ca> Fix memory leaks on trash backend * daemon/trashlib/trashdir.c: * daemon/trashlib/trashexpunge.c: * daemon/trashlib/trashitem.c: * daemon/trashlib/trashwatcher.c: fix memory leaks * daemon/gvfsbackendtrash.c: fix leaks; split enumerate into two functions (one for the root, one for the non-root case) svn path=/trunk/; revision=2135
* Implement pull support on trash backend.Ryan Lortie2008-12-121-0/+65
| | | | | | | | | | | | 2008-12-11 Ryan Lortie <desrt@desrt.ca> Implement pull support on trash backend. * daemon/trashlib/trashitem.[ch]: add support for restoring items * daemon/gvfsbackendtrash.c: implement pull svn path=/trunk/; revision=2133
* New trash:/ backend.Ryan Lortie2008-12-121-1636/+496
| | | | | | | | | | | | | | | | 2008-12-11 Ryan Lortie <desrt@desrt.ca> New trash:/ backend. * daemon/trashlib: implementation of the reader side of the fd.o trash specification * daemon/gvfsbackendtrash.[ch]: rewrite based on trashlib * configure.ac: add daemon/trashlib/Makefile to output * daemon/Makefile.am: add trashlib/ subdir and include in trash backend libraries svn path=/trunk/; revision=2132
* Add Push and Pull. Remove Upload. (#550100)Christian Kellner2008-09-011-0/+81
| | | | svn path=/trunk/; revision=1922
* Plug some leaks on error pathsMatthias Clasen2008-08-251-1/+1
| | | | svn path=/trunk/; revision=1907
* Correctly set copy name to original file name. Fixes #41852.Christian Neumair2008-08-161-1/+4
| | | | | | | | | 2008-08-16 Christian Neumair <cneumair@gnome.org> * daemon/gvfsbackendtrash.c (add_extra_trash_info): Correctly set copy name to original file name. Fixes #41852. svn path=/trunk/; revision=1887
* Bug 525779: Dont look for trashs dir on sys mountsChristian Kellner2008-08-021-2/+5
| | | | | | | Don't include internal mountswhile building up the list of trash directories. Bug #525779 svn path=/trunk/; revision=1852
* Bug 509740 – Trash icon not updated ...Christian Kellner2008-08-021-1/+21
| | | | | | | Create the home trash directory if it doesn't already exist so we can monitor it for changes and update the trash icon svn path=/trunk/; revision=1849
* Use hex escapes in the trash backend. Patch by Andreas Henriksson. FixesA. Walton2008-06-111-17/+32
| | | | | | | | | | | | | 2008-06-11 A. Walton <awalton@gnome.org> * daemon/gvfsbackendtrash.c (escape_pathname), (unescape_pathname): Use hex escapes in the trash backend. Patch by Andreas Henriksson. Fixes bug #523139. svn path=/trunk/; revision=1805
* get rid of modelines The modelines were inconsistent and caused issuesBenjamin Otte2008-04-221-1/+0
| | | | | | | | | * */*.[ch]: get rid of modelines The modelines were inconsistent and caused issues when used in different editors. svn path=/trunk/; revision=1756
* plug some minor memory leaks.Paolo Borelli2008-03-281-3/+11
| | | | | | | | 2008-03-28 Paolo Borelli <pborelli@katamail.com> * daemon/gvfsbackendtrash.c: plug some minor memory leaks. svn path=/trunk/; revision=1687
* Make sure the display name is correct even for subdirectories inside thePaolo Borelli2008-03-251-16/+7
| | | | | | | | | | | 2008-03-25 Paolo Borelli <pborelli@katamail.com> * daemon/gvfsbackendtrash.c (add_extra_trash_info): Make sure the display name is correct even for subdirectories inside the trash. (#523127) svn path=/trunk/; revision=1678
* Create the root monitor for trash when mounting. (#509740).Cosimo Cecchi2008-03-031-4/+6
| | | | | | | | | 2008-03-03 Cosimo Cecchi <cosimoc@gnome.org> * daemon/gvfsbackendtrash.c: (do_mount): Create the root monitor for trash when mounting. (#509740). svn path=/trunk/; revision=1504
* Some more cleanup.Alexander Larsson2008-02-191-3/+4
| | | | | | | | | | | | | 2008-02-19 Alexander Larsson <alexl@redhat.com> * daemon/gvfsbackendsftp.c: * daemon/gvfsbackendtrash.c: * gconf/gapplookupgconf.c: * test/benchmark-common.c: Some more cleanup. svn path=/trunk/; revision=1303
* Code cleanup from Kjartan: Removes unused code/variables. Uses rightAlexander Larsson2008-02-191-8/+5
| | | | | | | | | | | | | | | 2008-02-19 Alexander Larsson <alexl@redhat.com> * lots of *.c files: Code cleanup from Kjartan: Removes unused code/variables. Uses right printf types Uses non-deprecated dbus calls. Removes spurious ; and , deleted extra checks for NULL for g_free svn path=/trunk/; revision=1302
* Keep track of the number of top level items in the trash. Expose thisRyan Lortie2008-02-131-26/+39
| | | | | | | | | | | 2008-02-13 Ryan Lortie <desrt@desrt.ca> * daemon/gvfsbackendtrash.c: Keep track of the number of top level items in the trash. Expose this value via the trash::item-count attribute. svn path=/trunk/; revision=1268
* Set the correct copy name. Set description.Alexander Larsson2008-02-111-1/+11
| | | | | | | | | | | 2008-02-11 Alexander Larsson <alexl@redhat.com> * daemon/gvfsbackendtrash.c: Set the correct copy name. Set description. svn path=/trunk/; revision=1257
* Rename burn:// with old "CD/DVD Creator" name.Luca Ferretti2008-02-101-2/+3
| | | | | | | | | | | | | | | 2008-02-10 Luca Ferretti <elle.uca@libero.it> * daemon/gvfsbackendburn.c: (g_vfs_backend_burn_init), (file_info_from_node): Rename burn:// with old "CD/DVD Creator" name. * daemon/gvfsbackendtrash.c: (g_vfs_backend_trash_init), (do_query_info): Rename trash:// with old "Trash" name. svn path=/trunk/; revision=1249
* Always set CAN_TRASH to falseAlexander Larsson2008-02-081-0/+6
| | | | | | | | | | 2008-02-08 Alexander Larsson <alexl@redhat.com> * daemon/gvfsbackendtrash.c: Always set CAN_TRASH to false svn path=/trunk/; revision=1237
* Handle unescaping __ correctly (#514040)Alexander Larsson2008-02-081-1/+1
| | | | | | | | | | 2008-02-08 Alexander Larsson <alexl@redhat.com> * daemon/gvfsbackendtrash.c (unescape_pathname): Handle unescaping __ correctly (#514040) svn path=/trunk/; revision=1236
* Correctly set the name for toplevel items.Alexander Larsson2008-02-051-0/+6
| | | | | | | | | | | | 2008-02-05 Alexander Larsson <alexl@redhat.com> * daemon/gvfsbackendtrash.c: (do_query_info): Correctly set the name for toplevel items. svn path=/trunk/; revision=1229
* Use -, not _ in attribute namesAlexander Larsson2008-01-231-2/+2
| | | | | | | | | | | | 2008-01-23 Alexander Larsson <alexl@redhat.com> * daemon/gvfsbackendtrash.c: (add_extra_trash_info): Use -, not _ in attribute names svn path=/trunk/; revision=1170
* Use :: to delimit namespace for trash attributesAlexander Larsson2008-01-231-2/+2
| | | | | | | | | | | | 2008-01-23 Alexander Larsson <alexl@redhat.com> * daemon/gvfsbackendtrash.c: (add_extra_trash_info): Use :: to delimit namespace for trash attributes svn path=/trunk/; revision=1169
* Fix warningsAlexander Larsson2008-01-211-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | 2008-01-21 Alexander Larsson <alexl@redhat.com> * client/gdaemonfile.c: * client/sftpuri.c: * common/gmounttracker.c: * daemon/gvfsmonitor.c: * daemon/gvfsbackend.c: Fix warnings * daemon/gvfsbackendburn.c: * daemon/gvfsbackendlocaltest.c: * daemon/gvfsbackendtrash.c: Update to latest gio API (removal of duplicate GSeekable calls). 2008-01-21 Alexander Larsson <alexl@redhat.com> * configure.ac: Post release version bump svn path=/trunk/; revision=1161
* Clean up strings and add translator commentsAlexander Larsson2008-01-151-1/+2
| | | | | | | | | | | | | | | | | | | | | 2008-01-15 Alexander Larsson <alexl@redhat.com> * client/gdaemonfile.c: * daemon/daemon-main.c: * daemon/gvfsbackendcdda.c: * daemon/gvfsbackendcomputer.c: * daemon/gvfsbackendftp.c: * daemon/gvfsbackendlocaltest.c: * daemon/gvfsbackendsftp.c: * daemon/gvfsbackendsmb.c: * daemon/gvfsbackendsmbbrowse.c: * daemon/gvfsbackendtrash.c: * daemon/gvfsjobsetattribute.c: * hal/ghaldrive.c: Clean up strings and add translator comments svn path=/trunk/; revision=1135
* Update to new gio APIAlexander Larsson2008-01-141-3/+5
| | | | | | | | | | | | | | 2008-01-14 Alexander Larsson <alexl@redhat.com> * client/gdaemonfile.c: * daemon/gvfsbackendlocaltest.c: * daemon/gvfsbackendtrash.c: * programs/gvfs-monitor-dir.c: * programs/gvfs-monitor-file.c: Update to new gio API svn path=/trunk/; revision=1125
* Make GVfsMonitor API simpler for users.Alexander Larsson2008-01-101-29/+16
| | | | | | | | | | | | | 2008-01-10 Alexander Larsson <alexl@redhat.com> * daemon/gvfsbackend.h: * daemon/gvfsmonitor.[ch]: * daemon/gvfsbackendcomputer.c: * daemon/gvfsbackendtrash.c: Make GVfsMonitor API simpler for users. svn path=/trunk/; revision=1091
* Remove freeing of initial ref after delay.Alexander Larsson2008-01-101-11/+13
| | | | | | | | | | | | | | | | | | | | 2008-01-10 Alexander Larsson <alexl@redhat.com> * daemon/gvfsmonitor.c: Remove freeing of initial ref after delay. * daemon/gvfsjobcreatemonitor.[ch]: Set the monitor as result here, not only the obj path. Nicer and allows better lifetime handling. If returning a obj ref, keep the monitor alive for some time to allow a subscribe request. * daemon/gvfsbackendcomputer.c: * daemon/gvfsbackendtrash.c: Update to the new APIs svn path=/trunk/; revision=1090
* Update to handle removed GDirectoryMonitor from API.Alexander Larsson2008-01-071-4/+4
| | | | | | | | | | | | | | | | | | | 2008-01-07 Alexander Larsson <alexl@redhat.com> * client/Makefile.am: * client/gdaemondirectorymonitor.[ch]: * client/gdaemonfile.c: * daemon/gvfsbackendtrash.c: * programs/gvfs-monitor-dir.c: Update to handle removed GDirectoryMonitor from API. * daemon/gvfsbackendsftp.c: Fix warnings svn path=/trunk/; revision=1077
* Update to new file attribute namesAlexander Larsson2007-12-201-2/+2
| | | | | | | | | | | | | | | | | | | | 2007-12-20 Alexander Larsson <alexl@redhat.com> * client/gvfsfusedaemon.c: * daemon/gvfsbackendsftp.c: * daemon/gvfsbackendsmb.c: * daemon/gvfsbackendsmbbrowse.c: * daemon/gvfsbackendtrash.c: * daemon/gvfsjobqueryinfo.c: * programs/gvfs-copy.c: * programs/gvfs-ls.c: * programs/gvfs-move.c: * test/benchmark-gvfs-big-files.c: * test/benchmark-gvfs-small-files.c: Update to new file attribute names svn path=/trunk/; revision=1058
* Fix build, renamed g_get_unix_mounts to g_unix_mounts_getBastien Nocera2007-12-171-1/+1
| | | | | | | | | | 2007-12-17 Bastien Nocera <hadess@hadess.net> * daemon/gvfsbackendtrash.c: (list_trash_dirs): Fix build, renamed g_get_unix_mounts to g_unix_mounts_get svn path=/trunk/; revision=1045
* Only use <gio/gio.h> includeAlexander Larsson2007-12-141-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-12-14 Alexander Larsson <alexl@redhat.com> * client/gdaemondirectorymonitor.c: * client/gdaemondirectorymonitor.h: * client/gdaemonfile.c: * client/gdaemonfile.h: * client/gdaemonfileenumerator.c: * client/gdaemonfileenumerator.h: * client/gdaemonfileinputstream.c: * client/gdaemonfileinputstream.h: * client/gdaemonfilemonitor.c: * client/gdaemonfilemonitor.h: * client/gdaemonfileoutputstream.c: * client/gdaemonfileoutputstream.h: * client/gdaemonmount.c: * client/gdaemonmount.h: * client/gdaemonvfs.c: * client/gdaemonvfs.h: * client/gdaemonvolumemonitor.h: * client/gvfsdaemondbus.c: * client/gvfsdaemondbus.h: * client/gvfsfusedaemon.c: * client/gvfsurimapper.h: * client/smburi.c: * common/gdbusutils.c: * common/gdbusutils.h: * common/gmountoperationdbus.c: * common/gmountoperationdbus.h: * common/gmountsource.c: * common/gmountsource.h: * common/gsysutils.c: * common/gvfsdaemonprotocol.c: * common/gvfsdaemonprotocol.h: * daemon/gvfsbackend.h: * daemon/gvfsbackendftp.c: * daemon/gvfsbackendsftp.c: * daemon/gvfsbackendsmb.c: * daemon/gvfsbackendsmbbrowse.c: * daemon/gvfsbackendtest.c: * daemon/gvfsbackendtrash.c: * daemon/gvfsdaemonutils.c: * daemon/gvfsjob.c: * daemon/gvfsjob.h: * daemon/gvfsjobcopy.h: * daemon/gvfsjobcreatemonitor.h: * daemon/gvfsjobdelete.h: * daemon/gvfsjobenumerate.h: * daemon/gvfsjobmakedirectory.h: * daemon/gvfsjobmakesymlink.h: * daemon/gvfsjobmount.h: * daemon/gvfsjobmountmountable.h: * daemon/gvfsjobmove.h: * daemon/gvfsjobqueryattributes.h: * daemon/gvfsjobqueryfsinfo.h: * daemon/gvfsjobqueryinfo.h: * daemon/gvfsjobsetattribute.h: * daemon/gvfsjobsetdisplayname.h: * daemon/gvfsjobtrash.h: * daemon/gvfsjobunmount.h: * daemon/gvfsmonitor.h: * daemon/mount.c: * daemon/mount.h: * programs/gvfs-cat.c: * programs/gvfs-copy.c: * programs/gvfs-info.c: * programs/gvfs-ls.c: * programs/gvfs-monitor-dir.c: * programs/gvfs-monitor-file.c: * programs/gvfs-mount.c: * programs/gvfs-move.c: * programs/gvfs-rm.c: * programs/gvfs-save.c: * programs/gvfs-trash.c: * test/benchmark-gvfs-big-files.c: * test/benchmark-gvfs-small-files.c: * test/benchmark-posix-big-files.c: * test/benchmark-posix-small-files.c: Only use <gio/gio.h> include svn path=/trunk/; revision=1039
* Update for API changes in gio trunk.David Zeuthen2007-12-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | 2007-12-11 David Zeuthen <davidz@redhat.com> Update for API changes in gio trunk. * client/Makefile.am: * client/gdaemonfile.c: (g_daemon_file_find_enclosing_mount), (g_daemon_file_file_iface_init): * client/gdaemonvolumemonitor.c: (get_mounts), (get_volumes), (find_mount_by_mount_info), (mount_added), (mount_removed), (g_daemon_volume_monitor_init), (g_daemon_volume_monitor_finalize), (g_daemon_volume_monitor_class_init): * client/gdaemonvolumemonitor.h: * client/gvfsfusedaemon.c: (mount_record_new), (mount_record_for_mount_exists), (mount_list_update), (mount_tracker_mounted_cb), (mount_tracker_unmounted_cb), (subthread_main): * daemon/gvfsbackendtrash.c: (list_trash_dirs): svn path=/trunk/; revision=1037
* Update to build with the latest glib included gioAlexander Larsson2007-11-271-1/+1
| | | | | | | | | | | | | | | | | | | | | 2007-11-27 Alexander Larsson <alexl@redhat.com> * client/gdaemonfileinputstream.c: * client/gdaemonfileoutputstream.c: * client/gdaemonvfs.c: * client/gvfsfusedaemon.c: * client/gvfsuriutils.h: * daemon/gvfsbackend.c: * daemon/gvfsbackendsftp.c: * daemon/gvfsbackendtrash.c: * daemon/gvfschannel.c: * daemon/gvfsmonitor.c: * daemon/mount.c: Update to build with the latest glib included gio svn path=/trunk/; revision=1034
* Code cleanups from Kjartan Maraas.Alexander Larsson2007-11-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | 2007-11-16 Alexander Larsson <alexl@redhat.com> * client/gdaemonfile.c: * client/gdaemonfileinputstream.c: * client/gdaemonfileoutputstream.c: * client/smburi.c: * common/gdbusutils.c: * common/gmountsource.c: * daemon/gvfsbackendftp.c: * daemon/gvfsbackendtrash.c: * daemon/gvfsdaemon.c: * daemon/gvfsjob.c: * daemon/gvfsjobdbus.c: * daemon/gvfsjobopenforwrite.h: * daemon/mount.c: * daemon/pty_open.c: * test/benchmark-gvfs-big-files.c: * test/benchmark-gvfs-small-files.c: * test/benchmark-posix-small-files.c: Code cleanups from Kjartan Maraas. svn path=/trunk/; revision=1031
* Add new functionsAlexander Larsson2007-11-121-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-11-12 Alexander Larsson <alexl@redhat.com> * common/gmountspec.[ch]: (g_mount_spec_new_from_data): (g_mount_spec_set_with_len): Add new functions * client/Makefile.am: * common/Makefile.am: Update for moved files Build non-shared version of common libs. Ups non-shared common libs in client module. * common/gvfsuriutils.[ch]: Removed. * client/gvfsuriutils.[ch]: Added. Moved uriutils to gvfs (not used by daemon) Re-namespace to g_vfs_* * common/gvfsurimapper.[ch]: Removed. * client/gvfsurimapper.[ch]: Added. Move UriMapper to client lib Remove/Hide use of GMountSpec * client/gdaemonvfs.c: * client/smburi.c: Update to the new APIs * client/gvfsfusedaemon.c: * daemon/gvfsbackendtrash.c: * daemon/gvfsjobqueryfsinfo.c: Fix warnings svn path=/trunk/; revision=1020
* Ansi C fixes from Jens GranseuerAlexander Larsson2007-11-071-1/+1
| | | | | | | | | | | | 2007-11-07 Alexander Larsson <alexl@redhat.com> * common/gdbusutils.c: * daemon/gvfsbackendtest.c: * daemon/gvfsbackendtrash.c: Ansi C fixes from Jens Granseuer svn path=/trunk/; revision=1016