Package: gman
Severity: normal
Tags: patch

When building 'gman' on amd64 with gcc-4.0,
I get the following error:

menu.c:453: error: cast from 'void*' to 'int' loses precision
menu.c: In function 'int section_select_callback(GtkWidget*, void*)':
menu.c:468: error: cast from 'void*' to 'int' loses precision
menu.c:469: error: cast from 'void*' to 'int' loses precision
menu.c: In function 'void app_quit(GtkWidget*, void*)':
menu.c:499: error: cast from 'void*' to 'int' loses precision
menu.c: In function 'int status_bar_callback(GtkWidget*, void*)':
menu.c:578: error: cast from 'void*' to 'int' loses precision
menu.c:579: error: cast from 'void*' to 'int' loses precision
menu.c: In function 'int search_mode_callback(GtkWidget*, void*)':
menu.c:592: error: cast from 'void*' to 'int' loses precision
menu.c:597: error: cast from 'void*' to 'int' loses precision
menu.c: In function 'int show_mode_callback(GtkWidget*, void*)':
menu.c:610: error: cast from 'void*' to 'int' loses precision
menu.c:615: error: cast from 'void*' to 'int' loses precision
menu.c: In function 'int button_clicked_callback(GtkWidget*, void*)':
menu.c:641: error: cast from 'void*' to 'int' loses precision
make[1]: *** [menu.o] Error 1
make[1]: Leaving directory `/gman-0.9.3'
make: *** [build-stamp] Error 2

With the attached patch 'gman' can be compiled
on amd64 using gcc-4.0.

Regards
Andreas Jochens

diff -urN ../tmp-orig/gman-0.9.3/gman.c ./gman.c
--- ../tmp-orig/gman-0.9.3/gman.c       2005-02-27 19:17:16.750721365 +0000
+++ ./gman.c    2005-02-27 19:16:48.842108242 +0000
@@ -47,7 +47,7 @@
        pthread_mutex_init(&context_lock,NULL);
        pthread_mutex_init(&loading_man_path_lock,NULL);
        init_context();
-       debuging = (int)context->get_value("debuging");
+       debuging = (long)context->get_value("debuging");
        pthread_mutex_lock(&gtk_lock);
     gtk_init (&argc, &argv);
        window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
diff -urN ../tmp-orig/gman-0.9.3/mandata.c ./mandata.c
--- ../tmp-orig/gman-0.9.3/mandata.c    2005-02-27 19:17:16.751721172 +0000
+++ ./mandata.c 2005-02-27 19:16:23.643971947 +0000
@@ -239,7 +239,7 @@
        char buffer[2*BUFFER_SIZE];
        char loc_name[BUFFER_SIZE];
        char buffer2[BUFFER_SIZE];
-       switch ((int)context->get_value("show_mode")) {
+       switch ((long)context->get_value("show_mode")) {
        case 0:
                sprintf(buffer,"%s -T '%s manual page' -n GMan -e man ",
                                (char*)context->get_value("xterm_command"),
@@ -350,7 +350,7 @@
                break;
        default:
                if(context->get_value("show_warning"))
-                       g_print("unexpected \'show_mode\' : %d 
",(int)context->get_value("show_mode"));
+                       g_print("unexpected \'show_mode\' : %ld 
",(long)context->get_value("show_mode"));
                return;
        }
        //g_warning(buffer);
diff -urN ../tmp-orig/gman-0.9.3/menu.c ./menu.c
--- ../tmp-orig/gman-0.9.3/menu.c       2005-02-27 19:17:16.751721172 +0000
+++ ./menu.c    2005-02-27 19:15:02.208690459 +0000
@@ -173,32 +173,32 @@
 /*flag = 0 means not to invoke call backs when changing the states of 
buttons.*/
 void updata_menu_buttons(int flag) 
 {
-       int i,j,k,k2;
-       k = (int)context->get_value("display_section_policy");
+       long i,j,k,k2;
+       k = (long)context->get_value("display_section_policy");
        if(k>0 && k<=2)
                if(!((GtkCheckMenuItem*)(section_select[k]))->active){
                        if(!flag) signal_menu_change++;
                        
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(section_select[k]),1);
                }
-       k = (int)context->get_value("display_section");
+       k = (long)context->get_value("display_section");
        for (i = 0;i<10;i++)
                if(!(k&(1<<i)) != 
!(((GtkCheckMenuItem*)(section_buttons[i]))->active)) {
                        if(!flag) signal_menu_change++;
                        
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(section_buttons[i]),k&(1<<i));
                }
-       k = (int)context->get_value("searching_mode");
+       k = (long)context->get_value("searching_mode");
        if(k>0 && k<=1)
                if(!(((GtkCheckMenuItem*)(searching_mode_buttons[k]))->active)) 
{
                        if(!flag) signal_menu_change++;
                        
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(searching_mode_buttons[k]),1);
                }
-       k = (int)context->get_value("show_mode");
+       k = (long)context->get_value("show_mode");
        if(k>0 && k<=3)
                if(!(((GtkCheckMenuItem*)(show_mode_buttons[k]))->active)) {
                        if(!flag) signal_menu_change++;
                        
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(show_mode_buttons[k]),1);
                }
-       k2 = (int)context->get_value("show_status_bar");
+       k2 = (long)context->get_value("show_status_bar");
        i = k2&(1<<k);
        j = (((GtkCheckMenuItem*)(status_bar_button))->active);
        if((i&&!j) || (!i&&j)) {
@@ -220,10 +220,10 @@
 
 static void updata_widget_show(int flag)
 {      
-       int k,k2;
+       long k,k2;
        
-       k = (int)context->get_value("searching_mode");
-       k2 = (int)context->get_value("show_status_bar");
+       k = (long)context->get_value("searching_mode");
+       k2 = (long)context->get_value("show_status_bar");
 
        if(k2&(1<<k)) 
                gtk_widget_show(hbox_status);
@@ -258,8 +258,8 @@
        gtk_window_set_title(GTK_WINDOW(window), "Gman");
        gtk_window_set_policy( GTK_WINDOW( window ), FALSE, TRUE, FALSE );
        gtk_window_set_default_size(GTK_WINDOW(window),
-                                                               
(int)context->get_value("h_size"),
-                                                               
(int)context->get_value("v_size"));
+                                                               
(long)context->get_value("h_size"),
+                                                               
(long)context->get_value("v_size"));
        
        gtk_widget_set_usize(GTK_WIDGET(window),200,150);
        main_vbox = gtk_vbox_new(FALSE, 1);
@@ -443,14 +443,14 @@
 
 static int section_policy_callback(GtkWidget *w, gpointer data) {
        //      static int signal;
-       int k,k2;
-       k2 = (int) data;
+       long k,k2;
+       k2 = (long) data;
        if(!((GtkCheckMenuItem*)(section_select[k2]))->active) return 1;
        //      g_message("Hello, World! %x\n signal = 
%d",data,signal_menu_change);
        if(signal_menu_change>0) {signal_menu_change--;return 1;}
        //if(!signal) {signal++;return 1;}
        //signal--;
-       k = (int) context->get_value("display_section_policy");
+       k = (long) context->get_value("display_section_policy");
        if(k == k2) return 1;
        pthread_mutex_lock(&context_lock);
        context->set_value("display_section_policy","int",(void*)k2);
@@ -461,12 +461,12 @@
 }
 
 static int section_select_callback(GtkWidget *w, gpointer data) {
-       int var;
+       long var;
        if(signal_menu_change>0) {signal_menu_change--;return 1;}
 
        pthread_mutex_lock(&context_lock);
-       var = (int)context->get_value("display_section");
-       var ^= (int)data;
+       var = (long)context->get_value("display_section");
+       var ^= (long)data;
        context->set_value("display_section","int",(void*)var);
        if (context->get_value("display_section_policy")) {
                task_set_active(task_extract_man_data);
@@ -496,7 +496,7 @@
        }
        //      context->save(stdout,"automatically made by Gman");
        
-       gtk_exit((int)data);
+       gtk_exit((long)data);
 }
 
 static int window_resize_callback(GtkWidget *w, GtkAllocation * size, gpointer 
data)
@@ -573,10 +573,10 @@
 
 static int status_bar_callback (GtkWidget *widget, gpointer   data)
 {
-       int k,k2;
+       long k,k2;
        if(signal_menu_change>0) {signal_menu_change--;return 1;}
-       k2 = (int) context->get_value("show_status_bar");
-       k = (int) context->get_value("searching_mode");
+       k2 = (long) context->get_value("show_status_bar");
+       k = (long) context->get_value("searching_mode");
        if(((GtkCheckMenuItem*)(status_bar_button))->active) k2 = k2 | (1<<k);
        else k2 = k2 & ~(1<<k);
        pthread_mutex_lock(&context_lock);
@@ -588,13 +588,13 @@
 
 static int search_mode_callback (GtkWidget *widget, gpointer   data)
 {
-       int k,k2;
-       k2 = (int) data;
+       long k,k2;
+       k2 = (long) data;
        if(!((GtkCheckMenuItem*)(searching_mode_buttons[k2]))->active) return 1;
        if(signal_menu_change>0) {signal_menu_change--;return 1;}
        //if(!signal) {signal++;return 1;}
        //signal--;
-       k = (int) context->get_value("searching_mode");
+       k = (long) context->get_value("searching_mode");
        if(k == k2) return 1;
        pthread_mutex_lock(&context_lock);
        context->set_value("searching_mode","int",(void*)k2);
@@ -606,13 +606,13 @@
 
 static int show_mode_callback (GtkWidget *widget, gpointer   data)
 {
-       int k,k2;
-       k2 = (int) data;
+       long k,k2;
+       k2 = (long) data;
        if(!((GtkCheckMenuItem*)(show_mode_buttons[k2]))->active) return 1;
        if(signal_menu_change>0) {signal_menu_change--;return 1;}
        //if(!signal) {signal++;return 1;}
        //signal--;
-       k = (int) context->get_value("show_mode");
+       k = (long) context->get_value("show_mode");
        if(k == k2) return 1;
        pthread_mutex_lock(&context_lock);
        context->set_value("show_mode","int",(void*)k2);
@@ -638,7 +638,7 @@
 
 static int button_clicked_callback(GtkWidget * w,gpointer data)
 {
-       int i = (int) data;
+       long i = (long) data;
        switch (i) {
        case 1: task_set_stop(task_key_word_search);break;
        case 2: task_set_active(task_key_word_search);break;
diff -urN ../tmp-orig/gman-0.9.3/task.c ./task.c
--- ../tmp-orig/gman-0.9.3/task.c       2005-02-27 19:17:16.752720979 +0000
+++ ./task.c    2005-02-27 19:17:06.685664107 +0000
@@ -112,12 +112,12 @@
        do {
                have_task = 0;
                task = (Task *)NULL;
-               int flag = 0;
+               long flag = 0;
                pthread_mutex_lock(&task_group->lock);
                j = task_group->tasks->get_size();
                for(i = 0; i<j && !have_task ;i++) {
                        if((task = 
(Task*)task_group->tasks->get_item(i))->signals[0]->get_size()) {
-                               flag = ((int)task->signals[0]->get_item(0) & 
~1) | (task->state & 1);
+                               flag = ((long)task->signals[0]->get_item(0) & 
~1) | (task->state & 1);
                                task->signals[0]->delete_item(0);
                                have_task++;
                        }
@@ -126,7 +126,7 @@
                                have_task++;
                        }
                        else if (task->signals[1]->get_size()) {
-                               flag = ((int)task->signals[1]->get_item(1) & 
~1);
+                               flag = ((long)task->signals[1]->get_item(1) & 
~1);
                                task->signals[1]->delete_item(0);
                                have_task++;
                        }
diff -urN ../tmp-orig/gman-0.9.3/taskfunc.c ./taskfunc.c
--- ../tmp-orig/gman-0.9.3/taskfunc.c   2005-02-27 19:17:16.752720979 +0000
+++ ./taskfunc.c        2005-02-27 19:16:02.782998500 +0000
@@ -41,10 +41,10 @@
        int display_section_ID;
 
        pthread_mutex_lock(&context_lock);
-       switch ((int)context->get_value("display_section_policy")) {
+       switch ((long)context->get_value("display_section_policy")) {
        case 0: display_section_ID = ~0;break;
-       case 1: display_section_ID = 
~(int)(context->get_value("display_section"));break;
-       case 2: display_section_ID = 
(int)context->get_value("display_section"); break;
+       case 1: display_section_ID = 
~(long)(context->get_value("display_section"));break;
+       case 2: display_section_ID = 
(long)context->get_value("display_section"); break;
        default: fprintf(stderr,"warning: init_man_data: 
\"display_section_policy\" "
                                         "have invalid value 
%d",context->get_value("display_section_policy"));
        display_section_ID = ~0;
diff -urN ../tmp-orig/gman-0.9.3/window2.c ./window2.c
--- ../tmp-orig/gman-0.9.3/window2.c    2005-02-27 19:17:16.753720786 +0000
+++ ./window2.c 2005-02-27 19:15:33.446660955 +0000
@@ -223,7 +223,7 @@
        GtkWidget * x, *apply_button,*add_new_button;
        gchar * c, *c2;
        int i;
-       int select = (int)data;
+       long select = (long)data;
        gchar * clist_item[3];
        //      printf("point2 data = %d\n",select);
        apply_button = 
(GtkWidget*)gtk_object_get_data(GTK_OBJECT(window2),"button2");


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to