From 7d691cab9b479b154653f49057724a7707015828 Mon Sep 17 00:00:00 2001 From: Craig Scott Date: Mon, 3 Jan 2011 12:15:41 -0500 Subject: ccmake: Port for LSB 4.0 (#11648) Use getmaxyx instead of getmax[xy]. Avoid using getattrs. --- Source/CursesDialog/form/frm_driver.c | 16 +++++++++++----- Source/CursesDialog/form/frm_post.c | 4 +++- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/Source/CursesDialog/form/frm_driver.c b/Source/CursesDialog/form/frm_driver.c index 0b53b5a..519d66d 100644 --- a/Source/CursesDialog/form/frm_driver.c +++ b/Source/CursesDialog/form/frm_driver.c @@ -357,8 +357,7 @@ static void Buffer_To_Window(const FIELD * field, WINDOW * win) assert(win && field); - width = getmaxx(win); - height = getmaxy(win); + getmaxyx(win, height, width); for(row=0, pBuffer=field->buf; row < height; @@ -390,13 +389,13 @@ static void Window_To_Buffer(WINDOW * win, FIELD * field) int pad; int len = 0; char *p; - int row, height; + int row, height, width; assert(win && field && field->buf ); pad = field->pad; p = field->buf; - height = getmaxy(win); + getmaxyx(win, height, width); for(row=0; (row < height) && (row < field->drows); row++ ) { @@ -856,6 +855,8 @@ static int Display_Or_Erase_Field(FIELD * field, bool bEraseFlag) { WINDOW *win; WINDOW *fwin; + attr_t fwinAttrs; + short fwinPair; if (!field) return E_SYSTEM_ERROR; @@ -871,7 +872,12 @@ static int Display_Or_Erase_Field(FIELD * field, bool bEraseFlag) if (field->opts & O_VISIBLE) Set_Field_Window_Attributes(field,win); else - wattrset(win,getattrs(fwin)); + { + /* getattrs() would be handy, but it is not part of LSB 4.0 */ + /* wattrset(win,getattrs(fwin)); */ + wattr_get(fwin, &fwinAttrs, &fwinPair, 0); + wattr_set(win, fwinAttrs, fwinPair, 0); + } werase(win); } diff --git a/Source/CursesDialog/form/frm_post.c b/Source/CursesDialog/form/frm_post.c index 5ead942..924fe6a 100644 --- a/Source/CursesDialog/form/frm_post.c +++ b/Source/CursesDialog/form/frm_post.c @@ -51,6 +51,7 @@ int post_form(FORM * form) WINDOW *formwin; int err; int page; + int height, width; if (!form) RETURN(E_BAD_ARGUMENT); @@ -62,7 +63,8 @@ int post_form(FORM * form) RETURN(E_NOT_CONNECTED); formwin = Get_Form_Window(form); - if ((form->cols > getmaxx(formwin)) || (form->rows > getmaxy(formwin))) + getmaxyx(formwin, height, width); + if ((form->cols > width) || (form->rows > height)) RETURN(E_NO_ROOM); /* reset form->curpage to an invald value. This forces Set_Form_Page -- cgit v0.12 From a3de30eed95cbcff75aeb654710f8b43a8dfa90d Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 4 Jan 2011 08:52:50 -0500 Subject: ccmake: Use LSB 4.0 curses API conditionally Use of 'attr_t' and 'wattr_get' works on LSB but does not seem portable to other curses versions. --- Source/CursesDialog/form/frm_driver.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Source/CursesDialog/form/frm_driver.c b/Source/CursesDialog/form/frm_driver.c index 519d66d..80f09d0 100644 --- a/Source/CursesDialog/form/frm_driver.c +++ b/Source/CursesDialog/form/frm_driver.c @@ -855,8 +855,6 @@ static int Display_Or_Erase_Field(FIELD * field, bool bEraseFlag) { WINDOW *win; WINDOW *fwin; - attr_t fwinAttrs; - short fwinPair; if (!field) return E_SYSTEM_ERROR; @@ -872,12 +870,17 @@ static int Display_Or_Erase_Field(FIELD * field, bool bEraseFlag) if (field->opts & O_VISIBLE) Set_Field_Window_Attributes(field,win); else - { + { +#if defined(__LSB_VERSION__) /* getattrs() would be handy, but it is not part of LSB 4.0 */ - /* wattrset(win,getattrs(fwin)); */ + attr_t fwinAttrs; + short fwinPair; wattr_get(fwin, &fwinAttrs, &fwinPair, 0); wattr_set(win, fwinAttrs, fwinPair, 0); - } +#else + wattrset(win,getattrs(fwin)); +#endif + } werase(win); } -- cgit v0.12 From dde0c89cfcec22ac75cbadd77e45d2113521f326 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 5 Jan 2011 11:07:24 -0500 Subject: ccmake: Use LSB 4.0 getmaxyx conditionally Use of 'getmaxyx' works on LSB but does not seem portable to other curses versions. --- Source/CursesDialog/form/frm_driver.c | 13 +++++++++++-- Source/CursesDialog/form/frm_post.c | 5 +++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Source/CursesDialog/form/frm_driver.c b/Source/CursesDialog/form/frm_driver.c index 80f09d0..03896c2 100644 --- a/Source/CursesDialog/form/frm_driver.c +++ b/Source/CursesDialog/form/frm_driver.c @@ -357,7 +357,12 @@ static void Buffer_To_Window(const FIELD * field, WINDOW * win) assert(win && field); +#if defined(__LSB_VERSION__) getmaxyx(win, height, width); +#else + width = getmaxx(win); + height = getmaxy(win); +#endif for(row=0, pBuffer=field->buf; row < height; @@ -389,13 +394,17 @@ static void Window_To_Buffer(WINDOW * win, FIELD * field) int pad; int len = 0; char *p; - int row, height, width; + int row, height; assert(win && field && field->buf ); pad = field->pad; p = field->buf; - getmaxyx(win, height, width); +#if defined(__LSB_VERSION__) + { int width; getmaxyx(win, height, width); } +#else + height = getmaxy(win); +#endif for(row=0; (row < height) && (row < field->drows); row++ ) { diff --git a/Source/CursesDialog/form/frm_post.c b/Source/CursesDialog/form/frm_post.c index 924fe6a..3c63de7 100644 --- a/Source/CursesDialog/form/frm_post.c +++ b/Source/CursesDialog/form/frm_post.c @@ -63,7 +63,12 @@ int post_form(FORM * form) RETURN(E_NOT_CONNECTED); formwin = Get_Form_Window(form); +#if defined(__LSB_VERSION__) getmaxyx(formwin, height, width); +#else + width = getmaxx(formwin); + height = getmaxy(formwin); +#endif if ((form->cols > width) || (form->rows > height)) RETURN(E_NO_ROOM); -- cgit v0.12