+static gint tmpl_compare(gconstpointer tmpl1, gconstpointer tmpl2)
+{
+ gchar *basename1, *basename2;
+ long filenum1, filenum2;
+ gint ret = 0;
+
+ if ((Template *)tmpl1 == NULL || (Template *)tmpl2 == NULL)
+ return 0;
+
+ if (((Template *)tmpl1)->load_filename == NULL || ((Template *)tmpl2)->load_filename == NULL)
+ return 0;
+
+ basename1 = g_path_get_basename(((Template *)tmpl1)->load_filename);
+ basename2 = g_path_get_basename(((Template *)tmpl2)->load_filename);
+ filenum1 = atol(basename1);
+ filenum2 = atol(basename2);
+ g_free(basename1);
+ g_free(basename2);
+
+ if (filenum1 == 0 || filenum2 == 0)
+ return 0;
+
+ if (filenum1 < filenum2)
+ ret = -1;
+ else
+ if (filenum1 > filenum2)
+ ret = 1;
+
+ return ret;
+}
+