X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libraries%2Flibrewrite%2Fparse.c;h=1ef1af192280fbb1e88710f3da8bc91f9d6d4e69;hb=c5078085249b5b4ae8f5fbdd18fd9c9c67e1da37;hp=bf4426cebf3e329b54f393dddede7849c21e6b24;hpb=74fa239a201cd2d785fe34bdbaf6804161bdb231;p=openldap diff --git a/libraries/librewrite/parse.c b/libraries/librewrite/parse.c index bf4426cebf..1ef1af1922 100644 --- a/libraries/librewrite/parse.c +++ b/libraries/librewrite/parse.c @@ -1,29 +1,26 @@ -/****************************************************************************** +/* $OpenLDAP$ */ +/* This work is part of OpenLDAP Software . * - * Copyright (C) 2000 Pierangelo Masarati, + * Copyright 2000-2004 The OpenLDAP Foundation. * All rights reserved. * - * Permission is granted to anyone to use this software for any purpose - * on any computer system, and to alter it and redistribute it, subject - * to the following restrictions: + * Redistribution and use in source and binary forms, with or without + * modification, are permitted only as authorized by the OpenLDAP + * Public License. * - * 1. The author is not responsible for the consequences of use of this - * software, no matter how awful, even if they arise from flaws in it. - * - * 2. The origin of this software must not be misrepresented, either by - * explicit claim or by omission. Since few users ever read sources, - * credits should appear in the documentation. - * - * 3. Altered versions must be plainly marked as such, and must not be - * misrepresented as being the original software. Since few users - * ever read sources, credits should appear in the documentation. - * - * 4. This notice may not be removed or altered. - * - ******************************************************************************/ + * A copy of this license is available in the file LICENSE in the + * top-level directory of the distribution or, alternatively, at + * . + */ +/* ACKNOWLEDGEMENT: + * This work was initially developed by Pierangelo Masarati for + * inclusion in OpenLDAP Software. + */ #include +#include + #include "rewrite-int.h" static int @@ -38,14 +35,14 @@ parse_line( int in_quoted_field = 0, cnt = 0; char quote = '\0'; - for ( p = buf; isspace( p[ 0 ] ); p++ ); + for ( p = buf; isspace( (unsigned char) p[ 0 ] ); p++ ); if ( p[ 0 ] == '#' ) { return 0; } for ( begin = p; p[ 0 ] != '\0'; p++ ) { - if ( p[ 0 ] == '\\' ) { + if ( p[ 0 ] == '\\' && p[ 1 ] != '\0' ) { p++; } else if ( p[ 0 ] == '\'' || p[ 0 ] == '\"') { if ( in_quoted_field && p[ 0 ] == quote ) { @@ -57,7 +54,7 @@ parse_line( *argc = cnt; return 1; } - for ( p++; isspace( p[ 0 ] ); p++ ); + for ( p++; isspace( (unsigned char) p[ 0 ] ); p++ ); begin = p; p--; @@ -69,7 +66,7 @@ parse_line( in_quoted_field = 1 - in_quoted_field; quote = p[ 0 ]; } - } else if ( isspace( p[ 0 ] ) && !in_quoted_field ) { + } else if ( isspace( (unsigned char) p[ 0 ] ) && !in_quoted_field ) { p[ 0 ] = '\0'; argv[ cnt ] = begin; @@ -78,7 +75,7 @@ parse_line( return 1; } - for ( p++; isspace( p[ 0 ] ); p++ ); + for ( p++; isspace( (unsigned char) p[ 0 ] ); p++ ); begin = p; p--; } @@ -90,7 +87,7 @@ parse_line( } int -read_rewrite( +rewrite_read( FILE *fin, struct rewrite_info *info )