Read and parse commands from a file.
Copyright (C) 1992 Ian Lance Taylor
This file is part of the Taylor UUCP uuconf library.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License
as published by the Free Software Foundation; either version 2 of
the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
The author of the program may be contacted at ian@airs.com or
c/o Infinity Development Systems, P.O. Box 520, Waltham, MA 02254.
const char _uuconf_cmdfil_rcsid
[] = "$Id: cmdfil.c,v 1.1 1993/08/04 19:33:51 jtc Exp $";
/* Read and parse commands from a file, updating uuconf_lineno as
uuconf_cmd_file (pglobal
, e
, qtab
, pinfo
, pfiunknown
, iflags
, pblock
)
const struct uuconf_cmdtab
*qtab
;
int (*pfiunknown
) P((pointer
, int, char **, pointer
, pointer
));
struct sglobal
*qglobal
= (struct sglobal
*) pglobal
;
fcont
= (iflags
& UUCONF_CMDTABFLAG_BACKSLASH
) != 0;
? _uuconf_getline (qglobal
, &zline
, &cline
, e
)
: getline (&zline
, &cline
, e
)) > 0)
iret
= uuconf_cmd_line (pglobal
, zline
, qtab
, pinfo
, pfiunknown
,
if ((iret
& UUCONF_CMDTABRET_KEEP
) != 0)
iret
&=~ UUCONF_CMDTABRET_KEEP
;
if (uuconf_add_block (pblock
, zline
) != 0)
iret
= (UUCONF_MALLOC_FAILED
if ((iret
& UUCONF_CMDTABRET_EXIT
) != 0)
iret
&=~ UUCONF_CMDTABRET_EXIT
;
if (iret
!= UUCONF_SUCCESS
)
iret
|= UUCONF_ERROR_LINENO
;