aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorPaul Richards <paul@FreeBSD.org>1994-11-13 07:43:43 +0000
committerPaul Richards <paul@FreeBSD.org>1994-11-13 07:43:43 +0000
commit1ab772898b1d1974442c95d7e7b6d8ae284008bd (patch)
tree1e29869220e29026ddf3582d47291ef316482ef6 /lib
parentc4115cc446b503b6bf0d1874eb41c26841aa19e6 (diff)
Notes
Diffstat (limited to 'lib')
-rw-r--r--lib/libforms/forms.c12
-rw-r--r--lib/libforms/forms.h5
2 files changed, 14 insertions, 3 deletions
diff --git a/lib/libforms/forms.c b/lib/libforms/forms.c
index 5c29b10f3aff..05f7fbd794f4 100644
--- a/lib/libforms/forms.c
+++ b/lib/libforms/forms.c
@@ -239,7 +239,7 @@ find_link(int id)
return(0);
}
-void
+int
edit_form(struct form *form)
{
WINDOW *window;
@@ -247,6 +247,10 @@ edit_form(struct form *form)
int key;
window = newwin(form->height, form->width, form->y, form->x);
+ if (!window) {
+ fprintf(stderr, "Failed to open window\n");
+ return(-1);
+ }
keypad(window, TRUE);
refresh_form(window, form);
@@ -254,8 +258,11 @@ edit_form(struct form *form)
cur_field = form->fields;
do {
- /* Just skip over text fields */
+ /* Skip over any preceeding text fields */
if (cur_field->type == FORM_FTYPE_TEXT) {
+ if (!cur_field->link)
+ /* No editable fields, reached end of text fields */
+ return(0);
cur_field = cur_field->link;
continue;
}
@@ -297,6 +304,7 @@ edit_form(struct form *form)
} else
beep();
} while (key != keymap[FORM_EXIT]);
+ return (0);
}
void
diff --git a/lib/libforms/forms.h b/lib/libforms/forms.h
index 606bd1cd04e9..1fb9535177f7 100644
--- a/lib/libforms/forms.h
+++ b/lib/libforms/forms.h
@@ -24,6 +24,7 @@
#define MAX_FIELD_SIZE 80
+
struct form {
int x;
int y;
@@ -32,6 +33,8 @@ struct form {
struct field *fields;
};
+extern struct form *form;
+
struct input_field {
int y_prompt;
int x_prompt;
@@ -76,6 +79,6 @@ extern unsigned int keymap[FORM_NO_KEYS];
int init_forms();
int edit_line(WINDOW *window, struct field *);
-void edit_form(struct form *);
+int edit_form(struct form *);
void refresh_form(WINDOW *, struct form *);
struct field *find_link(int);