Index: applets/clock/pixmaps/Makefile.am
===================================================================
--- applets/clock/pixmaps/Makefile.am	(revision 11424)
+++ applets/clock/pixmaps/Makefile.am	(working copy)
@@ -1,16 +1,88 @@
 icondir = $(datadir)/gnome-panel/pixmaps
-icon_DATA =				\
-	clock-calendar-icon.png		\
-	clock-face-large.svg		\
-	clock-face-small.svg		\
-	clock-face-small-morning.svg	\
-	clock-face-small-day.svg	\
-	clock-face-small-evening.svg	\
-	clock-face-small-night.svg	\
-	clock-map.png		\
-	clock-map-location-marker.png	\
-	clock-map-location-current.png	\
-	clock-map-location-hilight.png
+icon_DATA =					\
+	clock-calendar-icon.png			\
+	clock-face-large.svg			\
+	clock-face-small.svg			\
+	clock-face-small-morning.svg		\
+	clock-face-small-day.svg		\
+	clock-face-small-evening.svg		\
+	clock-face-small-night.svg		\
+	clock-map.png				\
+	clock-map-location-marker.png		\
+	clock-map-location-current.png		\
+	clock-map-location-hilight.png  	\
+	weather-clear-night_000.svg		\
+	weather-clear-night_010.svg		\
+	weather-clear-night_020.svg		\
+	weather-clear-night_030.svg		\
+	weather-clear-night_040.svg		\
+	weather-clear-night_050.svg		\
+	weather-clear-night_060.svg		\
+	weather-clear-night_070.svg		\
+	weather-clear-night_080.svg		\
+	weather-clear-night_090.svg		\
+	weather-clear-night_100.svg		\
+	weather-clear-night_110.svg		\
+	weather-clear-night_120.svg		\
+	weather-clear-night_130.svg		\
+	weather-clear-night_140.svg		\
+	weather-clear-night_150.svg		\
+	weather-clear-night_160.svg		\
+	weather-clear-night_170.svg		\
+	weather-clear-night_180.svg		\
+	weather-clear-night_190.svg		\
+	weather-clear-night_200.svg		\
+	weather-clear-night_210.svg		\
+	weather-clear-night_220.svg		\
+	weather-clear-night_230.svg		\
+	weather-clear-night_240.svg		\
+	weather-clear-night_250.svg		\
+	weather-clear-night_260.svg		\
+	weather-clear-night_270.svg		\
+	weather-clear-night_280.svg		\
+	weather-clear-night_290.svg		\
+	weather-clear-night_300.svg		\
+	weather-clear-night_310.svg		\
+	weather-clear-night_320.svg		\
+	weather-clear-night_330.svg		\
+	weather-clear-night_340.svg		\
+	weather-clear-night_350.svg		\
+	weather-few-clouds-night_000.svg	\
+	weather-few-clouds-night_010.svg	\
+	weather-few-clouds-night_020.svg	\
+	weather-few-clouds-night_030.svg	\
+	weather-few-clouds-night_040.svg	\
+	weather-few-clouds-night_050.svg	\
+	weather-few-clouds-night_060.svg	\
+	weather-few-clouds-night_070.svg	\
+	weather-few-clouds-night_080.svg	\
+	weather-few-clouds-night_090.svg	\
+	weather-few-clouds-night_100.svg	\
+	weather-few-clouds-night_110.svg	\
+	weather-few-clouds-night_120.svg	\
+	weather-few-clouds-night_130.svg	\
+	weather-few-clouds-night_140.svg	\
+	weather-few-clouds-night_150.svg	\
+	weather-few-clouds-night_160.svg	\
+	weather-few-clouds-night_170.svg	\
+	weather-few-clouds-night_180.svg	\
+	weather-few-clouds-night_190.svg	\
+	weather-few-clouds-night_200.svg	\
+	weather-few-clouds-night_210.svg	\
+	weather-few-clouds-night_220.svg	\
+	weather-few-clouds-night_230.svg	\
+	weather-few-clouds-night_240.svg	\
+	weather-few-clouds-night_250.svg	\
+	weather-few-clouds-night_260.svg	\
+	weather-few-clouds-night_270.svg	\
+	weather-few-clouds-night_280.svg	\
+	weather-few-clouds-night_290.svg	\
+	weather-few-clouds-night_300.svg	\
+	weather-few-clouds-night_310.svg	\
+	weather-few-clouds-night_320.svg	\
+	weather-few-clouds-night_330.svg	\
+	weather-few-clouds-night_340.svg	\
+	weather-few-clouds-night_350.svg
 
 EXTRA_DIST = 		\
 	clock-map.svg	\
Index: applets/clock/clock-location-tile.c
===================================================================
--- applets/clock/clock-location-tile.c	(revision 11424)
+++ applets/clock/clock-location-tile.c	(working copy)
@@ -64,6 +64,8 @@
 		                 GtkTooltip *tooltip,
 		                 gpointer    data);
 
+#define N_MOONPHASES  36
+
 ClockLocationTile *
 clock_location_tile_new (ClockLocation *loc,
 			 ClockFaceSize size)
@@ -559,20 +561,26 @@
         g_free (tmp);
 }
 
+
+GdkPixbuf *clock_location_tile_get_weather_pixbuf (WeatherInfo* info)
+{
+        const gchar* icon_name;
+
+	icon_name = weather_info_get_icon_name (info, N_MOONPHASES);
+	return gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
+					 icon_name, strlen(icon_name), 0, NULL);
+}
+
 void
 weather_info_setup_tooltip (WeatherInfo *info, ClockLocation *location, GtkTooltip *tooltip)
 {
         GdkPixbuf *pixbuf = NULL;
-        GtkIconTheme *theme = NULL;
 	const gchar *conditions, *wind;
 	gchar *temp, *apparent;
 	gchar *line1, *line2, *line3, *line4, *tip;
-	const gchar *icon_name;
 	const gchar *sys_timezone;
 
-       	icon_name = weather_info_get_icon_name (info);
-        theme = gtk_icon_theme_get_default ();
-        pixbuf = gtk_icon_theme_load_icon (theme, icon_name, 48, 0, NULL);
+	pixbuf = clock_location_tile_get_weather_pixbuf(info);
         if (pixbuf)
                 gtk_tooltip_set_icon (tooltip, pixbuf);
 
@@ -655,16 +663,11 @@
         ClockLocationTile *tile = data;
         ClockLocationTilePrivate *priv = PRIVATE (tile);
         GdkPixbuf *pixbuf = NULL;
-        GtkIconTheme *theme = NULL;
-        const gchar *icon_name;
 
         if (!info || !weather_info_is_valid (info))
                 return;
 
-        icon_name = weather_info_get_icon_name (info);
-        theme = gtk_icon_theme_get_default ();
-        pixbuf = gtk_icon_theme_load_icon (theme, icon_name, 16, 0, NULL);
-
+        pixbuf = clock_location_tile_get_weather_pixbuf (info);
         if (pixbuf) {
                 gtk_image_set_from_pixbuf (GTK_IMAGE (priv->weather_icon), pixbuf);
                 gtk_alignment_set_padding (GTK_ALIGNMENT (gtk_widget_get_parent (priv->weather_icon)), 0, 0, 0, 6);
Index: applets/clock/clock-location-tile.h
===================================================================
--- applets/clock/clock-location-tile.h	(revision 11424)
+++ applets/clock/clock-location-tile.h	(working copy)
@@ -36,6 +36,8 @@
 
 ClockLocation *clock_location_tile_get_location (ClockLocationTile *this);
 
+GdkPixbuf *clock_location_tile_get_weather_pixbuf (WeatherInfo* info);
+
 void weather_info_setup_tooltip (WeatherInfo *info, ClockLocation *location, GtkTooltip *tip);
 
 void clock_location_tile_refresh (ClockLocationTile *this,
Index: applets/clock/ChangeLog
===================================================================
--- applets/clock/ChangeLog	(revision 11425)
+++ applets/clock/ChangeLog	(working copy)
@@ -1,3 +1,16 @@
+2008-12-24  Frank Solensky  <frank@solensky.org>
+
+	reviewed by: <delete if not using a buddy>
+
+	* clock-location-tile.c (clock_location_tile_get_weather_pixbuf),
+	(weather_info_setup_tooltip), (update_weather_icon):  add shell
+        procedure around weather_info_get_icon name to avoid hard-coded
+        icon name lengths
+	* clock-location-tile.h: ibid
+	* clock.c (location_weather_updated_cb), (fill_clock_applet):
+        add ICON_DIR to icon search path
+	* pixmaps/Makefile.am: add phase-of-moon icons
+
 2008-12-13  Vincent Untz  <vuntz@gnome.org>
 
 	* clock.glade: show day of week header in "set time" calendar
Index: applets/clock/clock.c
===================================================================
--- applets/clock/clock.c	(revision 11424)
+++ applets/clock/clock.c	(working copy)
@@ -2051,7 +2051,6 @@
 	ClockData *cd = data;
 	const gchar *icon_name;
 	const gchar *temp;
-	GtkIconTheme *theme;
 	GdkPixbuf *pixbuf;
 
 	if (!info || !weather_info_is_valid (info))
@@ -2060,10 +2059,7 @@
 	if (!clock_location_is_current (location))
 		return;
 
-	icon_name = weather_info_get_icon_name (info);
-	/* FIXME: mmh, screen please? Also, don't hardcode to 16 */
-	theme = gtk_icon_theme_get_default ();
-	pixbuf = gtk_icon_theme_load_icon (theme, icon_name, 16, 0, NULL);
+	pixbuf = clock_location_tile_get_weather_pixbuf (info);
 
 	temp = weather_info_get_temp_summary (info);
 
@@ -2700,6 +2696,8 @@
 
         g_free (filename);
 
+	gtk_icon_theme_append_search_path(gtk_icon_theme_get_default(), ICONDIR);
+
 	create_clock_widget (cd);
 
 #ifndef CLOCK_INPROCESS
