#pragma ident "%Z%%M% %I% %E% SMI"
/*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is Mozilla Communicator client code, released
* March 31, 1998.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998-1999 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
*/
/*
* Copyright (c) 1993, 1994 Regents of the University of Michigan.
* All rights reserved.
*
* Redistribution and use in source and binary forms are permitted
* provided that this notice is preserved and that due credit is given
* to the University of Michigan at Ann Arbor. The name of the University
* may not be used to endorse or promote products derived from this
* software without specific prior written permission. This software
* is provided ``as is'' without express or implied warranty.
*/
/*
* dsparse.c: parsing routines used by display template and search
* preference file library routines for LDAP clients.
*
*/
#include "ldap-int.h"
static char *next_token( char ** sp );
int
{
return( rc );
}
NSLDAPI_FREE( line );
return( -1 );
}
tokcnt = 0;
p = line;
sizeof( char * ))) == NULL ) {
NSLDAPI_FREE( (char *)toks );
NSLDAPI_FREE( line );
return( -1 );
}
}
tokcnt = 0;
}
NSLDAPI_FREE( line );
if ( tokcnt == 0 ) {
NSLDAPI_FREE( (char *)toks );
}
} else {
}
return( tokcnt );
}
static int
{
long plen;
p = *bufp;
do {
if ( *p == '\r' ) {
++p;
--plen;
}
break;
}
if ( *p == '\n' ) {
++p;
--plen;
}
break;
}
}
++p;
--plen;
*bufp = p;
if ( plen <= 0 ) {
return( 0 ); /* end of file */
}
return( -1 ); /* fatal error */
}
}
static char *
{
int in_quote = 0;
char *p, *tokstart, *t;
if ( **sp == '\0' ) {
return( NULL );
}
p = *sp;
while ( ldap_utf8isspace( p )) { /* skip leading white space */
++p;
}
if ( *p == '\0' ) {
return( NULL );
}
if ( *p == '\"' ) {
in_quote = 1;
++p;
}
t = tokstart = p;
for ( ;; ) {
if ( *p != '\0' ) {
++p;
}
*t++ = '\0'; /* end of token */
break;
}
if ( *p == '\"' ) {
++p;
} else {
*t++ = *p++;
}
}
*sp = p;
if ( t == tokstart ) {
return( NULL );
}
return( nsldapi_strdup( tokstart ));
}
void
{
int i;
NSLDAPI_FREE( sap[ i ] );
}
NSLDAPI_FREE( (char *)sap );
}
}