# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1324935635 0 # Node ID 79c99c612725935181956c3239ee8e8ac06738c7 # Parent dc41efe8a53feb051680f4a7024c020299f83532 Allow passing NULL to dw_container_change/set_item() on GTK2. diff -r dc41efe8a53f -r 79c99c612725 gtk/dw.c --- a/gtk/dw.c Mon Dec 26 21:27:59 2011 +0000 +++ b/gtk/dw.c Mon Dec 26 21:40:35 2011 +0000 @@ -7145,7 +7145,7 @@ */ void _dw_container_set_item(HWND handle, void *pointer, int column, int row, void *data, char *text) { - char numbuf[11], textbuffer[101]; + char numbuf[11] = {0}, textbuffer[101] = {0}; int flag = 0; GtkWidget *clist; int _locked_by_me = FALSE; @@ -7167,59 +7167,73 @@ if(flag & DW_CFA_BITMAPORICON) { - HICN hicon = *((HICN *)data); GdkBitmap *bitmap = NULL; - GdkPixmap *pixmap = _find_pixmap(&bitmap, hicon, clist, NULL, NULL); - + GdkPixmap *pixmap = NULL; + + if(data) + { + HICN hicon = *((HICN *)data); + pixmap = _find_pixmap(&bitmap, hicon, clist, NULL, NULL); + } gtk_clist_set_pixmap(GTK_CLIST(clist), row, column, pixmap ? pixmap : _dw_tmppixmap, pixmap ? bitmap : _dw_tmpbitmap); } else if(flag & DW_CFA_STRINGANDICON) { - HICN hicon = *((HICN *)data); GdkBitmap *bitmap = NULL; - GdkPixmap *pixmap = _find_pixmap(&bitmap, hicon, clist, NULL, NULL); - - gtk_clist_set_pixtext(GTK_CLIST(clist), row, column, text, 2, pixmap ? pixmap : _dw_tmppixmap, pixmap ? bitmap : _dw_tmpbitmap); + GdkPixmap *pixmap = NULL; + + if(data) + { + HICN hicon = *((HICN *)data); + pixmap = _find_pixmap(&bitmap, hicon, clist, NULL, NULL); + } + gtk_clist_set_pixtext(GTK_CLIST(clist), row, column, text ? text : textbuffer, 2, pixmap ? pixmap : _dw_tmppixmap, pixmap ? bitmap : _dw_tmpbitmap); } else if(flag & DW_CFA_STRING) { - char *tmp = *((char **)data); + char *tmp = data ? *((char **)data) : textbuffer; gtk_clist_set_text(GTK_CLIST(clist), row, column, tmp); } else if(flag & DW_CFA_ULONG) { - ULONG tmp = *((ULONG *)data); - - snprintf(textbuffer, 100, "%lu", tmp); - + if(data) + { + ULONG tmp = *((ULONG *)data); + + snprintf(textbuffer, 100, "%lu", tmp); + } gtk_clist_set_text(GTK_CLIST(clist), row, column, textbuffer); } else if(flag & DW_CFA_DATE) { - struct tm curtm; - CDATE cdate = *((CDATE *)data); - - memset( &curtm, 0, sizeof(curtm) ); - curtm.tm_mday = cdate.day; - curtm.tm_mon = cdate.month - 1; - curtm.tm_year = cdate.year - 1900; - - strftime(textbuffer, 100, "%x", &curtm); - + if(data) + { + struct tm curtm; + CDATE cdate = *((CDATE *)data); + + memset( &curtm, 0, sizeof(curtm) ); + curtm.tm_mday = cdate.day; + curtm.tm_mon = cdate.month - 1; + curtm.tm_year = cdate.year - 1900; + + strftime(textbuffer, 100, "%x", &curtm); + } gtk_clist_set_text(GTK_CLIST(clist), row, column, textbuffer); } else if(flag & DW_CFA_TIME) { - struct tm curtm; - CTIME ctime = *((CTIME *)data); - - memset( &curtm, 0, sizeof(curtm) ); - curtm.tm_hour = ctime.hours; - curtm.tm_min = ctime.minutes; - curtm.tm_sec = ctime.seconds; - - strftime(textbuffer, 100, "%X", &curtm); - + if(data) + { + struct tm curtm; + CTIME ctime = *((CTIME *)data); + + memset( &curtm, 0, sizeof(curtm) ); + curtm.tm_hour = ctime.hours; + curtm.tm_min = ctime.minutes; + curtm.tm_sec = ctime.seconds; + + strftime(textbuffer, 100, "%X", &curtm); + } gtk_clist_set_text(GTK_CLIST(clist), row, column, textbuffer); } if(!pointer)