/****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc. *
+ * Copyright (c) 1998,2000 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 *
****************************************************************************/
/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
+ * Author: Juergen Pfeifer, 1995,1997 *
+ * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
****************************************************************************/
#include "form.priv.h"
-MODULE_ID("$Id: frm_driver.c,v 1.35 1999/05/16 17:20:52 juergen Exp $")
+MODULE_ID("$Id: frm_driver.c,v 1.39 2002/07/06 15:33:27 juergen Exp $")
/*----------------------------------------------------------------------------
This is the core module of the form library. It contains the majority
return FALSE;
}
assert(form!=(FORM *)0);
- delwin(form->w);
+ if (form->w)
+ delwin(form->w);
form->w = new_window;
Set_Field_Window_Attributes(field,form->w);
werase(form->w);
| E_SYSTEM_ERROR - form has no current field or
| field-window
+--------------------------------------------------------------------------*/
-int
-_nc_Position_Form_Cursor(FORM * form)
+NCURSES_EXPORT(int)
+_nc_Position_Form_Cursor (FORM * form)
{
FIELD *field;
WINDOW *formwin;
| E_BAD_ARGUMENT - invalid form pointer
| E_SYSTEM_ERROR - general error
+--------------------------------------------------------------------------*/
-int
-_nc_Refresh_Current_Field(FORM * form)
+NCURSES_EXPORT(int)
+_nc_Refresh_Current_Field (FORM * form)
{
WINDOW *formwin;
FIELD *field;
| E_BAD_ARGUMENT - invalid field pointer
| E_SYSTEM_ERROR - some severe basic error
+--------------------------------------------------------------------------*/
-int _nc_Synchronize_Attributes(FIELD * field)
+NCURSES_EXPORT(int)
+_nc_Synchronize_Attributes (FIELD * field)
{
FORM *form;
int res = E_OK;
| E_BAD_ARGUMENT - invalid field pointer
| E_SYSTEM_ERROR - some severe basic error
+--------------------------------------------------------------------------*/
-int
-_nc_Synchronize_Options(FIELD *field, Field_Options newopts)
+NCURSES_EXPORT(int)
+_nc_Synchronize_Options
+(FIELD *field, Field_Options newopts)
{
Field_Options oldopts;
Field_Options changed_opts;
| E_BAD_ARGUMENT - invalid form or field pointer
| E_SYSTEM_ERROR - some severe basic error
+--------------------------------------------------------------------------*/
-int
-_nc_Set_Current_Field(FORM *form, FIELD *newfield)
+NCURSES_EXPORT(int)
+_nc_Set_Current_Field
+(FORM *form, FIELD *newfield)
{
FIELD *field;
WINDOW *new_window;
}
}
delwin(form->w);
+ form->w = (WINDOW *)0;
}
field = newfield;
return(E_SYSTEM_ERROR);
form->current = field;
+
+ if (form->w)
+ delwin(form->w);
form->w = new_window;
+
form->status &= ~_WINDOW_MODIFIED;
Set_Field_Window_Attributes(field,form->w);
| Return Values : TRUE - field is valid
| FALSE - field is invalid
+--------------------------------------------------------------------------*/
-bool
-_nc_Internal_Validation(FORM *form)
+NCURSES_EXPORT(bool)
+_nc_Internal_Validation (FORM *form)
{
FIELD *field;
|
| Return Values : Pointer to calculated field.
+--------------------------------------------------------------------------*/
-FIELD*
-_nc_First_Active_Field(FORM * form)
+NCURSES_EXPORT(FIELD*)
+_nc_First_Active_Field (FORM * form)
{
FIELD **last_on_page = &form->field[form->page[form->curpage].pmax];
FIELD *proposed = Next_Field_On_Page(*last_on_page);
| Return Values : E_OK - success
| != E_OK - error from subordinate call
+--------------------------------------------------------------------------*/
-int
-_nc_Set_Form_Page(FORM * form, int page, FIELD * field)
+NCURSES_EXPORT(int)
+_nc_Set_Form_Page
+(FORM * form, int page, FIELD * field)
{
int res = E_OK;
| E_REQUEST_DENIED - request failed
| E_UNKNOWN_COMMAND - command not known
+--------------------------------------------------------------------------*/
-int form_driver(FORM * form, int c)
+NCURSES_EXPORT(int)
+form_driver (FORM * form, int c)
{
const Binding_Info* BI = (Binding_Info *)0;
int res = E_UNKNOWN_COMMAND;
| E_BAD_ARGUMENT - invalid argument
| E_SYSTEM_ERROR - system error
+--------------------------------------------------------------------------*/
-int set_field_buffer(FIELD * field, int buffer, const char * value)
+NCURSES_EXPORT(int)
+set_field_buffer
+(FIELD * field, int buffer, const char * value)
{
char *s, *p;
int res = E_OK;
unsigned int i;
for(i=len; i<vlen; i++)
- if (!isprint(value[i]))
+ if (!isprint((unsigned char)value[i]))
RETURN(E_BAD_ARGUMENT);
}
len = vlen;
|
| Return Values : Pointer to buffer or NULL if arguments were invalid.
+--------------------------------------------------------------------------*/
-char *field_buffer(const FIELD * field, int buffer)
+NCURSES_EXPORT(char *)
+field_buffer (const FIELD * field, int buffer)
{
if (field && (buffer >= 0) && (buffer <= field->nbuf))
return Address_Of_Nth_Buffer(field,buffer);