isc-parse.c 1.68 KB
Newer Older
Linus Tolke Y's avatar
Linus Tolke Y committed
1
/*
2
 * $Id: isc-parse.c,v 0.7 1993/10/18 12:29:24 ceder Exp $
Linus Tolke Y's avatar
Linus Tolke Y committed
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 * Copyright (C) 1991  Lysator Academic Computer Association.
 *
 * This file is part of the LysKOM server.
 * 
 * LysKOM is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by 
 * the Free Software Foundation; either version 1, or (at your option) 
 * any later version.
 * 
 * LysKOM 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 General Public License
 * for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with LysKOM; see the file COPYING.  If not, write to
 * Lysator, c/o ISY, Linkoping University, S-581 83 Linkoping, SWEDEN,
 * or the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, 
 * MA 02139, USA.
 *
 * Please mail bug reports to bug-lyskom@lysator.liu.se. 
 */
Per Cederqvist's avatar
Per Cederqvist committed
25
26
27
28
/*
 * Generic parse routines.
 */

29
static char *rcsid = "$Id: isc-parse.c,v 0.7 1993/10/18 12:29:24 ceder Exp $";
30
31
#include "rcs.h"
USE(rcsid);
Per Cederqvist's avatar
Per Cederqvist committed
32

Per Cederqvist's avatar
Per Cederqvist committed
33
34
35
#ifdef HAVE_STRING_H
#  include <string.h>
#endif
Per Cederqvist's avatar
Per Cederqvist committed
36
#include <setjmp.h>
37
38
#include <time.h>
#include <sys/types.h>
Per Cederqvist's avatar
Per Cederqvist committed
39

40
#include "s-string.h"
Per Cederqvist's avatar
Per Cederqvist committed
41
#include "kom-types.h"
Per Cederqvist's avatar
Per Cederqvist committed
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include "com.h"
#include "connections.h"
#include "isc-parse.h"

int
parse_char(Connection *client)
{
    if ( client->unparsed.len <= client->first_to_parse )
	longjmp(parse_env, ISC_MSG_INCOMPLETE);

    return client->unparsed.string[ client->first_to_parse++ ];
}
	

int
parse_nonwhite_char(Connection *client)
{
    int c;

    while ( strchr(" \t\n\r", c=parse_char(client) ) != NULL )
	;
    return c;
}