Commit Graph

30 Commits

Author SHA1 Message Date
Matthias Clasen
030529e04b Avoid double-free problems
svn path=/trunk/; revision=18906
2007-10-12 04:31:04 +00:00
Matthias Clasen
1e85985083 Don't use image->attach_points where image->n_attach_points was meant.
2007-09-07  Matthias Clasen  <mclasen@redhat.com>

        * gtk/updateiconcache.c (get_image_meta_data_size): Don't
        use image->attach_points where image->n_attach_points was meant.
        Pointed out by Albert Chin.


svn path=/trunk/; revision=18756
2007-09-07 19:57:33 +00:00
Matthias Clasen
2a80113304 Add an icon cache validator.
2007-05-01  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkiconcachvalidator.[hc]: Add an icon cache validator.

        * gtk/updateiconcache.c: Validate the generated cache before
        moving it in place. Also add a --validate option to validate
        an existing icon cache.

        * gtk/gtkiconcache.c: Validate icon caches before using them.

        * gtk/Makefile.am: Integrate it.


svn path=/trunk/; revision=17753
2007-05-01 20:00:17 +00:00
Matthias Clasen
82ce59cd0f Remove unnecessary NULL checks before g_free(). (#369666, Morten Welinder,
2007-03-09  Matthias Clasen <mclasen@redhat.com>

        * Everywhere: Remove unnecessary NULL checks before
        g_free().  (#369666, Morten Welinder, Djihed Afifi)

        * configure.in: Check for ftw.h



svn path=/trunk/; revision=17444
2007-03-09 21:57:37 +00:00
Matthias Clasen
d775d73c83 Handle symlinked .icon files intelligently; also avoid storing duplicate
2007-02-15  Matthias Clasen  <mclasen@redhat.com>

        * gtk/updateiconcache.c: Handle symlinked .icon files
        intelligently; also avoid storing duplicate strings.



svn path=/trunk/; revision=17298
2007-02-15 16:56:11 +00:00
Matthias Clasen
84cb26f73f Check the mtime of all directories, not just the toplevel, if ftw() is
2007-01-26  Matthias Clasen  <mclasen@redhat.com>

        * gtk/updateiconcache.c: Check the mtime of all directories,
        not just the toplevel, if ftw() is available.  (#331671, Behdad
        Esfahbod)

        * configure.in: Check for ftw.h.



svn path=/trunk/; revision=17221
2007-01-27 04:27:38 +00:00
Matthias Clasen
7bf87cf25a Include locale.h
svn path=/trunk/; revision=17026
2007-01-02 23:23:32 +00:00
Matthias Clasen
78c7c07f3b Call setlocale().
2007-01-02  Matthias Clasen  <mclasen@redhat.com>

        * gtk/updateiconcache.c (main): Call setlocale().

        * gtk/gtkfilesel.c:
        * gtk/gtkfilesystemunix.c:
        * gtk/gtkfilesystemwin32.c:
        * gtk/gtkfilechoosersettings.c:
        * gtk/updateiconcache.c: Consistently use folder instead of
        directory in translated messages.  (#344584, Javier F. Serrador)



svn path=/trunk/; revision=17024
2007-01-02 19:52:48 +00:00
Matthias Clasen
07e7719441 Apply a cleanup patch by Kjartan Maraas (#341812)
2006-10-08  Matthias Clasen  <mclasen@redhat.com>

	* Apply a cleanup patch by Kjartan Maraas  (#341812)
2006-10-08 05:07:55 +00:00
Matthias Clasen
485e607bfe Improve wording. String change! (#355128, David Lodge)
2006-09-10  Matthias Clasen  <mclasen@redhat.com>

	* gtk/updateiconcache.c: Improve wording. String change! (#355128,
	David Lodge)
2006-09-10 05:01:32 +00:00
Matthias Clasen
eb6f79d516 Marks strings for translation. (#314278, Claudio Saavedra) `
2006-06-19  Matthias Clasen  <mclasen@redhat.com>

	* gtk/updateiconcache.c: Marks strings for translation.  (#314278,
	Claudio Saavedra)
`
2006-06-19 22:32:03 +00:00
Matthias Clasen
8007463815 Don't create a big string, since Visual C++ doesn't like strings longer
2005-11-23  Matthias Clasen  <mclasen@redhat.com>

	* gtk/updateiconcache.c (write_csource): Don't create a big
	string, since Visual C++ doesn't like strings longer than 64k.
	(#322238, Kazuki IWAMOTO
2005-11-23 15:09:47 +00:00
Tor Lillqvist
30edb63134 Can't rename a file if the target exists on Win32. First rename the target
2005-11-06  Tor Lillqvist  <tml@novell.com>

	* gtk/updateiconcache.c (build_cache): Can't rename a file if the
	target exists on Win32. First rename the target temporarily, then
	if the renaming of the source to target fails, restore the
	original name for the target.

	* gtk/Makefile.am: Use EXEEXT in the dependency on gtk-update-icon-cache.
2005-11-06 06:27:01 +00:00
Matthias Clasen
b983d1c6a7 Store builtin stock icons in an icon cache, instead of populating a hash
2005-11-04  Matthias Clasen  <mclasen@redhat.com>

        Store builtin stock icons in an icon cache, instead of
        populating a hash table with pixbufs at startup, to save both
        memory and startup time.

        * gtk/stock-icons/*: Reorganize the icons in a directory structure
        suitable for gtk-update-icon-cache, and rename them to match the
        stock ids.

        * gtk/gtkiconcache.[hc]: Support non-mmapped icon caches, and
        add _gtk_icon_cache_has_icon_in_directory().

        * gtk/updateiconcache.c: Support a --source <VARIABLE> argument
        to store the contents of the icon cache in a C header.

        * gtk/gtkbuiltincache.h: Generated private header which contains
        the icon cache for the builtin icons.

        * gtk/gtkicontheme.c: Create a GtkIconCache for the builtin
        icons, and use that in addition to the hash table whenever
        builtin icons are searched.

        * gtk/gtkiconfactory.c: Add GTK_ICON_SOURCE_STATIC_ICON_NAME and
        use it for static stock ids.
        (get_default_icons): Don't add the builtin
        icons to the icon theme, just register the stock ids.
        (render_fallback_image): Take the fallback image out of the
        builtin icon cache.

        * gtk/Makefile.am: Remove stock-icons from SUBDIRS and add
        the necessary machinery to rebuild gtkbuiltincache.h.
2005-11-04 15:43:40 +00:00
Matthias Clasen
7d416fec1b Fix a use-after-free bug. (#316256, Alexander Nedotsukov)
2005-09-14  Matthias Clasen  <mclasen@redhat.com>

	* gtk/updateiconcache.c (foreach_remove_func): Fix
	a use-after-free bug.  (#316256, Alexander Nedotsukov)
2005-09-14 03:11:05 +00:00
Matthias Clasen
f906e82a93 Add a separate --ignore-theme-index option to avoid overloading --force.
2005-08-26  Matthias Clasen  <mclasen@redhat.com>

	* gtk/updateiconcache.c: Add a separate --ignore-theme-index option
	to avoid overloading --force.  (JP Rosevaar)
2005-08-26 19:05:31 +00:00
Matthias Clasen
9dbd953842 Complain when there is no index.theme file in the specified directory,
2005-08-23  Matthias Clasen  <mclasen@redhat.com>

	* gtk/updateiconcache.c: Complain when there is no index.theme file
	in the specified directory, unless --force is used. Also add an
	--index-only option to create caches without image data.
2005-08-23 15:18:08 +00:00
Tor Lillqvist
c92959a448 Use g_path_get_dirname() instead of the nonportable <libgen.h> and
2005-08-15  Tor Lillqvist  <tml@novell.com>

	* gtk/updateiconcache.c: Use g_path_get_dirname() instead of
	the nonportable <libgen.h> and dirname().
2005-08-15 14:53:00 +00:00
Matthias Clasen
7ab6652629 Small fix for svg icons. 2005-08-15 03:57:04 +00:00
Matthias Clasen
329fc5da74 Store only one copy of the pixel data for symlinked icons. To achieve
2005-08-14  Matthias Clasen  <mclasen@redhat.com>

	* gtk/updateiconcache.c: Store only one copy of the pixel data
	for symlinked icons. To achieve this, maintain a hashtable
	mapping pathnames to pixel data, and share the pixel data for
	all symlinks resolving to the same pathname. When writing out
	the image data, write out the pixel data only the first time
	it is met, and store the offset pointing to the first copy
	for use in all later cases.
	This reduces the size of the Bluecurve icon cache from 40
	to 13MB. (#312972)
2005-08-15 03:52:34 +00:00
Ivan, Wong Yat Cheung
47b096e223 Fix #300218:
2005-04-11  Ivan, Wong Yat Cheung  <email@ivanwong.info>

	Fix #300218:

	* gdk/win32/gdkselection-win32.c (gdk_selection_convert): Fix
	C99ism.

	* gtk/updateiconcache.c: Guard inclusion of unistd.h and
	utime.h.
2005-04-11 18:59:05 +00:00
Matthias Clasen
af8b86b8a1 Avoid unaligned access. (#172947)
2005-04-07  Matthias Clasen  <mclasen@redhat.com>

	* gtk/updateiconcache.c (write_card16, write_card32): Avoid
	unaligned access.  (#172947)

	* gtk/gtkfilechooserdefault.c (file_list_build_popup_menu):
	Consistently use the term "Bookmarks" in the UI.  (#166906,
	Sebastian Bacher)
2005-04-07 19:10:11 +00:00
Matthias Clasen
dd893da822 Some fixes from Morten Welinder (#172947):
2005-04-07  Matthias Clasen  <mclasen@redhat.com>

	Some fixes from Morten Welinder (#172947):

	* gtk/updateiconcache.c (icon_name_hash): Make this compiler-
	and platform-independent.
	(is_cache_up_to_date): Don't compare mtimes is a stat call failed.
	(build_cache): Error out if a stat fails.
2005-04-07 18:46:19 +00:00
Matthias Clasen
558ae6ac98 Return TRUE if the cache is newer than the directory. (#172852, Jacob
2005-04-07  Matthias Clasen  <mclasen@redhat.com>

	* gtk/updateiconcache.c (is_cache_up_to_date): Return
	TRUE if the cache is newer than the directory.  (#172852,
	Jacob Kroon)
2005-04-07 12:41:40 +00:00
Anders Carlsson
3fc42d7ab9 Update spec.
2005-03-15  Anders Carlsson  <andersca@imendio.com>

	* docs/iconcache.txt:
	Update spec.

	* gtk/gtkiconcache.c: (find_image_offset),
	(_gtk_icon_cache_get_icon_flags), (_gtk_icon_cache_add_icons),
	(_gtk_icon_cache_get_icon), (_gtk_icon_cache_get_icon_data):
	* gtk/gtkiconcache.h:
	Update to be able to fetch pixbuf data and icon metadata.

	* gtk/gtkicontheme.c: (theme_lookup_icon), (gtk_icon_info_free),
	(icon_info_ensure_scale_and_pixbuf):
	Use new cache functions.

	* gtk/updateiconcache.c: (foreach_remove_func), (load_icon_data),
	(maybe_cache_image_data), (scan_directory), (write_pixdata),
	(get_image_meta_data_size), (get_image_pixel_data_size),
	(get_image_data_size), (get_single_node_size), (get_bucket_size),
	(write_bucket), (main):
	Update to write pixbuf data as well as information from .icon
	files.
2005-03-15 13:18:25 +00:00
Manish Singh
79f9f13355 #include <config.h>
Tue Feb 22 13:49:09 2005  Manish Singh  <yosh@gimp.org>

        * gtk/updateiconcache.c: #include <config.h>
2005-02-22 21:49:42 +00:00
Matthias Clasen
673f0a86b9 Add a --quiet option.
2005-02-01  Matthias Clasen  <mclasen@redhat.com>

	* gtk/updateiconcache.c (main): Add a --quiet option.
2005-02-01 13:55:08 +00:00
Tor Lillqvist
f3da170539 gtk/gtkaccelmap.[ch] gtk/gtkfilechooser.[ch] gtk/gtkfilesel.c
2004-12-12  Tor Lillqvist  <tml@iki.fi>

	* gtk/gtkaccelmap.[ch]
	* gtk/gtkfilechooser.[ch]
	* gtk/gtkfilesel.c
	* gtk/gtkfilesystemwin32.c
	* gtk/gtkiconfactory.[ch]
	* gtk/gtkicontheme.[ch]
	* gtk/gtkimage.[ch]
	* gtk/gtkimmodule.c
	* gtk/gtkmodules.c
	* gtk/gtkrc.[ch]
	* gtk/gtkuimanager.[ch]
	* gtk/gtkwindow.[ch]
	* gtk/updateiconcache.c
	* gtk/gtk.symbols: Use gstdio wrappers. On Windows, convert
	environment variables referring to pathnames from locale encoding
	to UTF-8. As in GLib, in order to preserve Windows DLL ABI
	stability, add binary compatibility versions of functions that
	take file names as arguments, or return file names. Add a _utf8
	suffix to the "real" such functions on Windows. The ABI
	compatibility versions keep the old name.

	* gtk/Makefile.am: Strip PRIVATE symbols from the GNU import
	library.

	* gtk/gtkiconcache.c (_gtk_icon_cache_new_for_path): Implement
	file mapping on Win32.

	* gtk/updateiconcache.c: Don't crash if invoked without
	argument. Use binary mode when opening file.

	* modules/engines/ms-windows/Theme/gtk-2.0/Makefile.am: Install
	gtkrc in correct place, in <datadir>/themes/MS-Windows/gtk-2.0.
2004-12-12 21:09:13 +00:00
Matthias Clasen
a34d841d79 Implement for cached themes.
2004-10-21  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkicontheme.c (gtk_icon_theme_has_icon): Implement for
	cached themes.

	* gtk/gtkiconcache.h:
	* gtk/gtkiconcache.c (_gtk_icon_cache_has_icon): New function.

	* gtk/updateiconcache.c (scan_directory): Don't skip .icon
	files which are listed before their images.
	(foreach_remove_func): Instead filter lonely .icon files out
	here.

	* gtk/gtkicontheme.c (theme_dir_get_icon_suffix): Filter out
	the HAS_ICON_FILE flag.
2004-10-21 18:44:08 +00:00
Matthias Clasen
6fc2b8118a Implement icon theme caching. (#154034, Martijn Vernooij, caching schema
2004-10-19  Matthias Clasen  <mclasen@redhat.com>

	Implement icon theme caching.  (#154034, Martijn Vernooij,
	caching schema proposed by Owen Taylor, initial implementation
	by Anders Carlsson)

	* gtk/gtkdebug.h:
	* gtk/gtkmain.c: Add a "icontheme" debug flag.

	* gtk/Makefile.am (gtk_c_sources): Add gtkiconcache.c
	(gtk_private_h_sources): Add gtkiconcache.h
	(bin_PROGRAMS): Add gtk-update-icon-cache

	* gtk/gtkicontheme.c: Use icon caches if they are available.
	Currently, GTK+ uses the cache to get information about the
	available sizes, image file formats and .icon files. The
	actual image data, and the .icon file contents are not
	cached yet.

	* gtk/updateiconcache.c: A cmdline utility for generating
	icon cache files.

	* gtk/gtkiconcache.h:
	* gtk/gtkiconcache.c: The glue code to mmap an icon cache
	file and manage the information it contains.
2004-10-19 18:45:41 +00:00