X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=form%2Ffrm_driver.c;h=d920433469afa787e879dc343d4c024bea407c8e;hp=6390bdeee37bcd7ef75ba39d3cc5dc8339523e16;hb=7bffc4856038714ab0ce0999986d25bb8ca1b890;hpb=173dd870810c8b85baa31f9a272d15f96a8f9ff4 diff --git a/form/frm_driver.c b/form/frm_driver.c index 6390bdee..d9204334 100644 --- a/form/frm_driver.c +++ b/form/frm_driver.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. * + * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -32,7 +32,7 @@ #include "form.priv.h" -MODULE_ID("$Id: frm_driver.c,v 1.102 2012/07/21 23:23:08 tom Exp $") +MODULE_ID("$Id: frm_driver.c,v 1.106 2013/08/25 00:02:15 tom Exp $") /*---------------------------------------------------------------------------- This is the core module of the form library. It contains the majority @@ -187,7 +187,7 @@ static int FE_Delete_Previous(FORM *); /* Macro to set the attributes for a fields window */ #define Set_Field_Window_Attributes(field,win) \ -( wbkgdset((win),(chtype)((field)->pad | (field)->back)), \ +( wbkgdset((win),(chtype)((chtype)((field)->pad) | (field)->back)), \ (void) wattrset((win), (int)(field)->fore) ) /* Logic to decide whether or not a field really appears on the form */ @@ -1211,7 +1211,7 @@ Synchronize_Linked_Fields(FIELD *field) return (E_SYSTEM_ERROR); for (linked_field = field->link; - linked_field != field; + (linked_field != field) && (linked_field != 0); linked_field = linked_field->link) { if (((syncres = Synchronize_Field(linked_field)) != E_OK) && @@ -4397,8 +4397,8 @@ set_field_buffer(FIELD *field, int buffer, const char *value) { FIELD_CELL *p; int res = E_OK; - unsigned int i; - unsigned int len; + int i; + int len; #if USE_WIDEC_SUPPORT FIELD_CELL *widevalue = 0; @@ -4409,14 +4409,14 @@ set_field_buffer(FIELD *field, int buffer, const char *value) if (!field || !value || ((buffer < 0) || (buffer > field->nbuf))) RETURN(E_BAD_ARGUMENT); - len = (unsigned)Buffer_Length(field); + len = Buffer_Length(field); if (Growable(field)) { /* for a growable field we must assume zero terminated strings, because somehow we have to detect the length of what should be copied. */ - unsigned vlen = (unsigned)strlen(value); + int vlen = (int)strlen(value); if (vlen > len) { @@ -4446,7 +4446,7 @@ set_field_buffer(FIELD *field, int buffer, const char *value) delwin(field->working); field->working = newpad(1, Buffer_Length(field) + 1); } - len = (unsigned)Buffer_Length(field); + len = Buffer_Length(field); wclear(field->working); (void)mvwaddstr(field->working, 0, 0, value); @@ -4456,7 +4456,7 @@ set_field_buffer(FIELD *field, int buffer, const char *value) } else { - for (i = 0; i < (unsigned)field->drows; ++i) + for (i = 0; i < field->drows; ++i) { (void)mvwin_wchnstr(field->working, 0, (int)i * field->dcols, widevalue + ((int)i * field->dcols), @@ -4534,7 +4534,7 @@ field_buffer(const FIELD *field, int buffer) init_mb(state); next = _nc_wcrtomb(0, data[n].chars[0], &state); - if (!isEILSEQ(next)) + if (next > 0) need += next; } }