diff --git a/xi/xi.c b/xi/xi.c index dd5c7ad5f..b652a2ddb 100755 --- a/xi/xi.c +++ b/xi/xi.c @@ -3226,16 +3226,13 @@ xi_set_sel( XI_OBJ * xi_obj, int selstart, int selstop ) } void -xi_set_text( XI_OBJ * xi_obj, char *s ) +xi_set_text( XI_OBJ * xi_obj, const char *s ) { - char *buf; - size_t buf_size = 256; BOOLEAN ddd; BOOLEAN do_compare = TRUE; if ( xi_obj == xi_obj->itf->v.itf->focus_obj ) xi_obj->itf->v.itf->chg_flag = FALSE; - buf = XinMemoryAlloc( buf_size ); if (xi_obj->type == XIT_CELL) { XI_OBJ *list = xi_obj->parent; @@ -3248,14 +3245,15 @@ xi_set_text( XI_OBJ * xi_obj, char *s ) } if (do_compare) { + const size_t buf_size = 256; + char *buf = (char*)XinMemoryAlloc( buf_size ); + int cmp = 0; xi_get_text( xi_obj, buf, buf_size ); - if ( !strcmp( s, buf ) ) - { - XinMemoryFree( buf ); + cmp = strcmp( s, buf ); + XinMemoryFree( buf ); + if (!cmp) return; - } } - XinMemoryFree( buf ); ddd = !xi_get_native_controls( xi_obj ); switch ( xi_obj->type ) { diff --git a/xi/xi.h b/xi/xi.h index 1d88dffa9..e3d3fba6e 100755 --- a/xi/xi.h +++ b/xi/xi.h @@ -1430,7 +1430,7 @@ XIDLL void xi_set_icon XVT_CC_ARGS( ( XI_OBJ * xi_obj, int icon_rid, int down_ XIDLL void xi_set_pref XVT_CC_ARGS( ( XI_PREF_TYPE preftype, long value ) ); XIDLL void xi_set_sel XVT_CC_ARGS( ( XI_OBJ * xi_obj, int selstart, int selstop ) ); XIDLL void xi_set_row_height XVT_CC_ARGS( ( XI_OBJ * xi_obj, int height ) ); -XIDLL void xi_set_text XVT_CC_ARGS( ( XI_OBJ * xi_obj, char *s ) ); +XIDLL void xi_set_text XVT_CC_ARGS( ( XI_OBJ * xi_obj, const char *s ) ); XIDLL void xi_set_override_cursor XVT_CC_ARGS( ( XI_OBJ* itf, XinCursor cursor, BOOLEAN flag ) ); XIDLL void xi_event_debug XVT_CC_ARGS( ( char *tag, XI_EVENT * xiev, char *s, int len ) ); diff --git a/xi/xilm.h b/xi/xilm.h index cb4ef7313..92b8f358c 100755 --- a/xi/xilm.h +++ b/xi/xilm.h @@ -624,7 +624,7 @@ lm_set_row_height( LM lm, int row, int height, BOOLEAN set_height, void lm_set_sel( LM lm, int row, int column, BOOLEAN invisible, int c1, int c2 ); -void lm_set_text( LM lm, char *s, int row, int column, BOOLEAN invisible ); +void lm_set_text( LM lm, const char *s, int row, int column, BOOLEAN invisible ); void lm_size_event( LM_DATA * lmp, XinEvent * ep ); void lm_text_scrolling( XI_OBJ * xi_obj ); void lm_wrap_text( LM_DATA * lmp, int row, int col, BOOLEAN set_font ); diff --git a/xi/xilm2.c b/xi/xilm2.c index 8ac3ba648..c01630cb7 100755 --- a/xi/xilm2.c +++ b/xi/xilm2.c @@ -1924,7 +1924,7 @@ row: column: -------------------------------------------------------------------------*/ void -lm_set_text( LM lm, char *s, int row, int column, BOOLEAN v_scrolled ) +lm_set_text( LM lm, const char *s, int row, int column, BOOLEAN v_scrolled ) { BOOLEAN was_suspended = FALSE; BOOLEAN preserve_focus_text; diff --git a/xi/xilmst.c b/xi/xilmst.c index 041ccedf1..dee2edbcb 100755 --- a/xi/xilmst.c +++ b/xi/xilmst.c @@ -218,7 +218,7 @@ lm_focus_cell_visible_force( LM_FOCUS_CELL_VISIBLE_FORCE_ARGS * args ) } void -lm_focus_cell_text_set( LM_DATA * lmp, BOOLEAN preserve_focus_text, char *s, +lm_focus_cell_text_set( LM_DATA * lmp, BOOLEAN preserve_focus_text, const char *s, int row, int col, BOOLEAN v_scrolled ) { int focus_row, diff --git a/xi/xilmst.h b/xi/xilmst.h index 9157270ba..cd15eee99 100755 --- a/xi/xilmst.h +++ b/xi/xilmst.h @@ -70,7 +70,7 @@ void lm_focus_cell_selection_set( LM_DATA * lmp, int c1, int c2 ); char *lm_focus_cell_text_get( LM_DATA * lmp ); void lm_focus_cell_text_set( LM_DATA * lmp, BOOLEAN preserve_focus_text, - char *text, int row, int col, BOOLEAN v_scrolled ); + const char *text, int row, int col, BOOLEAN v_scrolled ); BOOLEAN lm_focus_list_has( LM_DATA * lmp ); diff --git a/xi/xiport.h b/xi/xiport.h index 624a5255a..f6605e1bd 100755 --- a/xi/xiport.h +++ b/xi/xiport.h @@ -715,7 +715,7 @@ extern "C" void XinWindowTimerKill( XinWindow win, long timer_id ); long XinWindowTimerSet( XinWindow win, long millisecs ); char *XinWindowTitleGet( XinWindow win ); - void XinWindowTitleSet( XinWindow win, char *title ); + void XinWindowTitleSet( XinWindow win, const char *title ); #if XIWS == XIWS_XM long XinWindowGetWidget( XinWindow win ); /* Return value is really a * Widget */ diff --git a/xi/xistx.c b/xi/xistx.c index 842036d41..57e40f67b 100755 --- a/xi/xistx.c +++ b/xi/xistx.c @@ -1313,7 +1313,7 @@ do_tx_add_par( TXEDIT tx, int limit, char *text ) #endif void -stx_set_text( STX stx, char *s ) +stx_set_text( STX stx, const char *s ) { STX_DATA *stxp = ( STX_DATA * ) stx; diff --git a/xi/xistx.h b/xi/xistx.h index b24583288..dc5cf4dfe 100755 --- a/xi/xistx.h +++ b/xi/xistx.h @@ -143,7 +143,7 @@ void stx_set_focus( STX stx ); void stx_set_pos( STX stx, XinPoint p ); void stx_set_rect( XinWindow win, STX stx, XinRect *new_rect, XinRect *field_button ); void stx_set_sel( STX stx, int c1, int c2 ); -void stx_set_text( STX stx, char *s ); +void stx_set_text( STX stx, const char *s ); XI_TEXT *stx_xi_text_get( STX stx ); BOOLEAN stx_cr_is_ok( STX stx ); void stx_update_colors( STX stx ); diff --git a/xi/xitext.c b/xi/xitext.c index 0f468a46a..acba440f6 100755 --- a/xi/xitext.c +++ b/xi/xitext.c @@ -328,7 +328,7 @@ reallocate_text( XI_TEXT * text, int len, BOOLEAN setting_buffer_size ) this function sets the text of an xi_text. */ void -xi_text_set( XI_TEXT * text, char *string ) +xi_text_set( XI_TEXT * text, const char *string ) { int len; XinFont *font; diff --git a/xi/xitext.h b/xi/xitext.h index 99849b6fb..45d3cc0d6 100755 --- a/xi/xitext.h +++ b/xi/xitext.h @@ -104,7 +104,7 @@ typedef struct #define xi_text_var_len_text_set( text, set ) ( text->var_len_text = set ) #define xi_text_font_get( text ) text->font -void xi_text_set( XI_TEXT * text, char *string ); +void xi_text_set( XI_TEXT * text, const char *string ); void xi_text_wrap( XI_TEXT * text ); void xi_text_pix_width_set( XI_TEXT * text, int pix_width ); void xi_text_pix_width_and_text_set( XI_TEXT * text, char *string, int pix_width, BOOLEAN set_font );