From 05f0966f64f56ad3348ce8569324ee6c3e692aa8 Mon Sep 17 00:00:00 2001 From: Julien BLACHE Date: Sat, 13 Mar 2010 21:14:18 +0100 Subject: Imported Debian patch 0.996-4 --- debian/patches/05_options_handling_fix.dpatch | 242 -------------------------- 1 file changed, 242 deletions(-) delete mode 100644 debian/patches/05_options_handling_fix.dpatch (limited to 'debian/patches/05_options_handling_fix.dpatch') diff --git a/debian/patches/05_options_handling_fix.dpatch b/debian/patches/05_options_handling_fix.dpatch deleted file mode 100644 index 31619f7..0000000 --- a/debian/patches/05_options_handling_fix.dpatch +++ /dev/null @@ -1,242 +0,0 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 05_options_handling_fix.dpatch by -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: Duplicate string values for options with constraint type of -## DP: SANE_CONSTRAINT_STRING_LIST. The string list is not guaranteed to -## DP: be stable, and actually isn't stable when the net backend is used. - -@DPATCH@ -diff -urNad xsane-0.995~/src/xsane-back-gtk.c xsane-0.995/src/xsane-back-gtk.c ---- xsane-0.995~/src/xsane-back-gtk.c 2008-07-25 18:53:38.000000000 +0200 -+++ xsane-0.995/src/xsane-back-gtk.c 2008-07-25 18:53:45.764102480 +0200 -@@ -2226,11 +2226,13 @@ - /* ----------------------------------------------------------------------------------------------------------------- */ - - void xsane_back_gtk_option_menu_new(GtkWidget *parent, const char *name, char *str_list[], -- const char *val, DialogElement *elem, -+ const char *val, SANE_Constraint_Type constraint_type, DialogElement *elem, - GtkTooltips *tooltips, const char *desc, SANE_Int settable) - { - GtkWidget *hbox, *label, *option_menu, *menu, *item; - MenuItem *menu_items; -+ int dup_string; -+ char *strval; - int i, num_items; - - DBG(DBG_proc, "xsane_back_gtk_option_menu_new(%s)\n", name); -@@ -2248,16 +2250,23 @@ - - menu_items = malloc((num_items + 1) * sizeof(menu_items[0])); - -+ dup_string = (constraint_type == SANE_CONSTRAINT_STRING_LIST); -+ - menu = gtk_menu_new(); - for (i = 0; i < num_items; ++i) - { -- item = gtk_menu_item_new_with_label(_BGT(str_list[i])); -+ if (dup_string) -+ strval = strdup(str_list[i]); -+ else -+ strval = str_list[i]; -+ -+ item = gtk_menu_item_new_with_label(_BGT(strval)); - gtk_container_add(GTK_CONTAINER(menu), item); - g_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_back_gtk_option_menu_callback, menu_items + i); - - gtk_widget_show(item); - -- menu_items[i].label = str_list[i]; -+ menu_items[i].label = strval; - menu_items[i].elem = elem; - menu_items[i].index = i; - } -@@ -2403,14 +2412,15 @@ - xsane.standard_hbox = NULL; - xsane.advanced_hbox = NULL; - -- /* free the menu labels of integer/fix-point word-lists: */ -+ /* free the menu labels */ - for (i = 0; i < xsane.num_elements; ++i) - { - if (xsane.element[i].menu) - { - opt = xsane_get_option_descriptor(xsane.dev, i); - elem = xsane.element + i; -- if (opt->type != SANE_TYPE_STRING) -+ if ((opt->type != SANE_TYPE_STRING) -+ || (opt->constraint_type == SANE_CONSTRAINT_STRING_LIST)) - { - for (j = 0; j < elem->menu_size; ++j) - { -diff -urNad xsane-0.995~/src/xsane-back-gtk.h xsane-0.995/src/xsane-back-gtk.h ---- xsane-0.995~/src/xsane-back-gtk.h 2008-07-25 18:53:38.000000000 +0200 -+++ xsane-0.995/src/xsane-back-gtk.h 2008-07-25 18:53:45.764102480 +0200 -@@ -117,7 +117,7 @@ - gfloat quant, int automatic, - DialogElement *elem, GtkTooltips *tooltips, const char *desc, SANE_Int settable); - extern void xsane_back_gtk_option_menu_new(GtkWidget *parent, const char *name, char *str_list[], -- const char *val, DialogElement *elem, GtkTooltips *tooltips, const char *desc, SANE_Int settable); -+ const char *val, SANE_Constraint_Type constraint_type, DialogElement *elem, GtkTooltips *tooltips, const char *desc, SANE_Int settable); - extern void xsane_back_gtk_text_entry_new(GtkWidget *parent, const char *name, const char *val, - DialogElement *elem, GtkTooltips *tooltips, const char *desc, SANE_Int settable); - extern void xsane_back_gtk_push_button_callback(GtkWidget *widget, gpointer data); -diff -urNad xsane-0.995~/src/xsane-front-gtk.c xsane-0.995/src/xsane-front-gtk.c ---- xsane-0.995~/src/xsane-front-gtk.c 2008-07-25 18:53:38.000000000 +0200 -+++ xsane-0.995/src/xsane-front-gtk.c 2008-07-25 18:53:58.887267644 +0200 -@@ -64,10 +64,10 @@ - int *state, void *xsane_toggle_button_callback); - GtkWidget *xsane_button_new_with_pixmap(GdkWindow *window, GtkWidget *parent, const char *xpm_d[], const char *desc, - void *xsane_button_callback, gpointer data); --void xsane_option_menu_new(GtkWidget *parent, char *str_list[], const char *val, int option_number, const char *desc, -+void xsane_option_menu_new(GtkWidget *parent, char *str_list[], const char *val, SANE_Constraint_Type constraint_type, int option_number, const char *desc, - void *option_menu_callback, SANE_Int settable, const gchar *widget_name); - void xsane_option_menu_new_with_pixmap(GdkWindow *window, GtkBox *parent, const char *xpm_d[], const char *desc, -- char *str_list[], const char *val, -+ char *str_list[], const char *val, SANE_Constraint_Type constraint_type, - GtkWidget **data, int option, - void *option_menu_callback, SANE_Int settable, const gchar *widget_name); - void xsane_range_new(GtkBox *parent, char *labeltext, const char *desc, -@@ -1007,12 +1007,14 @@ - - /* ---------------------------------------------------------------------------------------------------------------------- */ - --void xsane_option_menu_new(GtkWidget *parent, char *str_list[], const char *val, int option_number, const char *desc, -+void xsane_option_menu_new(GtkWidget *parent, char *str_list[], const char *val, SANE_Constraint_Type constraint_type, int option_number, const char *desc, - void *option_menu_callback, SANE_Int settable, const gchar *widget_name) - { - GtkWidget *option_menu, *menu, *item; - MenuItem *menu_items; - DialogElement *elem; -+ int dup_string; -+ char *strval; - int i, num_items; - - DBG(DBG_proc, "xsane_option_menu_new\n"); -@@ -1031,9 +1033,16 @@ - gtk_widget_set_name(menu, widget_name); - } - -+ dup_string = (constraint_type == SANE_CONSTRAINT_STRING_LIST); -+ - for (i = 0; i < num_items; ++i) - { -- item = gtk_menu_item_new_with_label(_BGT(str_list[i])); -+ if (dup_string) -+ strval = strdup(str_list[i]); -+ else -+ strval = str_list[i]; -+ -+ item = gtk_menu_item_new_with_label(_BGT(strval)); - gtk_container_add(GTK_CONTAINER(menu), item); - - if (option_menu_callback) -@@ -1047,7 +1056,7 @@ - - gtk_widget_show(item); - -- menu_items[i].label = str_list[i]; -+ menu_items[i].label = strval; - menu_items[i].elem = elem; - menu_items[i].index = i; - } -@@ -1075,7 +1084,7 @@ - /* ---------------------------------------------------------------------------------------------------------------------- */ - - void xsane_option_menu_new_with_pixmap(GdkWindow *window, GtkBox *parent, const char *xpm_d[], const char *desc, -- char *str_list[], const char *val, -+ char *str_list[], const char *val, SANE_Constraint_Type constraint_type, - GtkWidget **data, int option, - void *option_menu_callback, SANE_Int settable, const gchar *widget_name) - { -@@ -1094,7 +1103,7 @@ - gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2); - gtk_widget_show(pixmapwidget); - -- xsane_option_menu_new(hbox, str_list, val, option, desc, option_menu_callback, settable, widget_name); -+ xsane_option_menu_new(hbox, str_list, val, constraint_type, option, desc, option_menu_callback, settable, widget_name); - gtk_widget_show(hbox); - } - -diff -urNad xsane-0.995~/src/xsane-front-gtk.h xsane-0.995/src/xsane-front-gtk.h ---- xsane-0.995~/src/xsane-front-gtk.h 2008-07-25 18:53:38.000000000 +0200 -+++ xsane-0.995/src/xsane-front-gtk.h 2008-07-25 18:53:45.768101033 +0200 -@@ -54,10 +54,10 @@ - extern GtkWidget *xsane_button_new_with_pixmap(GdkWindow *window, GtkWidget *parent, const char *xpm_d[], const char *desc, - void *xsane_button_callback, gpointer data); - extern void xsane_pixmap_new(GtkWidget *parent, char *title, int width, int height, XsanePixmap *hist); --extern void xsane_option_menu_new(GtkWidget *parent, char *str_list[], const char *val, int option_number, const char *desc, -+extern void xsane_option_menu_new(GtkWidget *parent, char *str_list[], const char *val, SANE_Constraint_Type constraint_type, int option_number, const char *desc, - void *option_menu_callback, SANE_Int settable, const gchar *widget_name); - extern void xsane_option_menu_new_with_pixmap(GdkWindow *window, GtkBox *parent, const char *xpm_d[], const char *desc, -- char *str_list[], const char *val, -+ char *str_list[], const char *val, SANE_Constraint_Type constraint_type, - GtkWidget **data, int option, - void *option_menu_callback, SANE_Int settable, const gchar *widget_name); - extern void xsane_range_new(GtkBox *parent, char *labeltext, const char *desc, -diff -urNad xsane-0.995~/src/xsane.c xsane-0.995/src/xsane.c ---- xsane-0.995~/src/xsane.c 2008-07-25 18:53:45.132101694 +0200 -+++ xsane-0.995/src/xsane.c 2008-07-25 18:53:45.772100494 +0200 -@@ -876,7 +876,7 @@ - str_list[j] = 0; - sprintf(str, "%d", (int) val); - -- xsane_option_menu_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(parent), image_xpm, desc, str_list, str, &resolution_widget, well_known_option, -+ xsane_option_menu_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(parent), image_xpm, desc, str_list, str, opt->constraint_type, &resolution_widget, well_known_option, - xsane_resolution_list_callback, SANE_OPTION_IS_SETTABLE(opt->cap), widget_name); - - free(str_list); -@@ -931,7 +931,7 @@ - - - xsane_option_menu_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(parent), image_xpm, desc, -- str_list, str, &resolution_widget, well_known_option, -+ str_list, str, opt->constraint_type, &resolution_widget, well_known_option, - xsane_resolution_list_callback, SANE_OPTION_IS_SETTABLE(opt->cap), widget_name); - free(str_list); - } -@@ -1490,7 +1490,7 @@ - set = malloc(opt->size); - status = xsane_control_option(xsane.dev, xsane.well_known.scansource, SANE_ACTION_GET_VALUE, set, 0); - -- xsane_option_menu_new(hbox, (char **) opt->constraint.string_list, set, xsane.well_known.scansource, -+ xsane_option_menu_new(hbox, (char **) opt->constraint.string_list, set, opt->constraint_type, xsane.well_known.scansource, - _BGT(opt->desc), 0, SANE_OPTION_IS_SETTABLE(opt->cap), 0); - } - break; -@@ -1529,7 +1529,7 @@ - set = malloc(opt->size); - status = xsane_control_option(xsane.dev, xsane.well_known.scanmode, SANE_ACTION_GET_VALUE, set, 0); - -- xsane_option_menu_new(hbox, (char **) opt->constraint.string_list, set, xsane.well_known.scanmode, -+ xsane_option_menu_new(hbox, (char **) opt->constraint.string_list, set, opt->constraint_type, xsane.well_known.scanmode, - _BGT(opt->desc), xsane_scanmode_menu_callback, SANE_OPTION_IS_SETTABLE(opt->cap), 0); - } - break; -@@ -4635,7 +4635,7 @@ - } - str_list[j] = 0; - sprintf(str, "%d", val); -- xsane_back_gtk_option_menu_new(parent, title, str_list, str, elem, xsane.tooltips, _BGT(opt->desc), -+ xsane_back_gtk_option_menu_new(parent, title, str_list, str, opt->constraint_type, elem, xsane.tooltips, _BGT(opt->desc), - SANE_OPTION_IS_SETTABLE(opt->cap)); - free(str_list); - gtk_widget_show(parent->parent); -@@ -4733,7 +4733,7 @@ - } - str_list[j] = 0; - sprintf(str, "%g", SANE_UNFIX(val)); -- xsane_back_gtk_option_menu_new(parent, title, str_list, str, elem, xsane.tooltips, _BGT(opt->desc), SANE_OPTION_IS_SETTABLE(opt->cap)); -+ xsane_back_gtk_option_menu_new(parent, title, str_list, str, opt->constraint_type, elem, xsane.tooltips, _BGT(opt->desc), SANE_OPTION_IS_SETTABLE(opt->cap)); - free (str_list); - gtk_widget_show(parent->parent); - } -@@ -4770,7 +4770,7 @@ - (strcmp (opt->name, SANE_NAME_SCAN_SOURCE) != 0) ) /* do not show scansource */ - { - /* use a "list-selection" widget */ -- xsane_back_gtk_option_menu_new(parent, title, (char **) opt->constraint.string_list, buf, -+ xsane_back_gtk_option_menu_new(parent, title, (char **) opt->constraint.string_list, buf, opt->constraint_type, - elem, xsane.tooltips, _BGT(opt->desc), SANE_OPTION_IS_SETTABLE(opt->cap)); - gtk_widget_show (parent->parent); - } -- cgit v1.2.3