Files
Arquivotheca.Solaris-2.5/cmd/fmli/form/fclose.c
seta75D 7c4988eac0 Init
2021-10-11 19:38:01 -03:00

50 lines
1.2 KiB
C
Executable File

/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
/* The copyright notice above does not evidence any */
/* actual or intended publication of such source code. */
/*
* Copyright (c) 1986 AT&T
* All Rights Reserved
*/
#ident "@(#)fclose.c 1.4 92/07/14 SMI" /* SVr4.0 1.5 */
#include <stdio.h>
#include <curses.h>
#include "wish.h"
#include "token.h"
#include "winp.h"
#include "form.h"
#include "vtdefs.h"
#include "var_arrays.h"
int
form_close(fid)
form_id fid;
{
register int i;
register char *argptr;
register struct form *fptr;
formfield ff, (*disp)();
if (fid < 0 || !(FORM_array[fid].flags & FORM_USED)) {
#ifdef _DEBUG
_debug(stderr, "form_close(%d) - bad form number\n", fid);
#endif
return(FAIL);
}
fptr = &FORM_array[fid];
disp = fptr->display;
argptr = fptr->argptr;
for (i = 0, ff = (*disp)(0, argptr); ff.name != NULL; ff = (*disp)(++i, argptr))
if (*(ff.ptr))
endfield(*(ff.ptr));
if (FORM_curid == fid)
FORM_curid = -1;
fptr->flags = 0;
vt_close(fptr->vid); /* close the window associated with the form */
return(SUCCESS);
}