--- Begin Message ---
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(>k_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");
--- End Message ---