Compaq C warns that "the expression 'p=scan_esc(p)' modifies the variable

'p' more than once without an intervening sequence point.  This behavior
is undefined." What it essentially complains about is 'p=p+=1'. Now it's
changed to 'p=p+1'...
This commit is contained in:
Andy Polyakov 2000-06-06 15:21:12 +00:00
parent 62187daf9f
commit 9887c71c41

View File

@ -59,6 +59,7 @@
/* Part of the code in here was originally in conf.c, which is now removed */ /* Part of the code in here was originally in conf.c, which is now removed */
#include <stdio.h> #include <stdio.h>
#include <string.h>
#include <openssl/stack.h> #include <openssl/stack.h>
#include <openssl/lhash.h> #include <openssl/lhash.h>
#include <openssl/conf.h> #include <openssl/conf.h>
@ -73,7 +74,7 @@ static void clear_comments(CONF *conf, char *p);
static int str_copy(CONF *conf,char *section,char **to, char *from); static int str_copy(CONF *conf,char *section,char **to, char *from);
static char *scan_quote(CONF *conf, char *p); static char *scan_quote(CONF *conf, char *p);
static char *scan_dquote(CONF *conf, char *p); static char *scan_dquote(CONF *conf, char *p);
#define scan_esc(p) (((IS_EOF((conf),(p)[1]))?(p+=1):(p+=2))) #define scan_esc(conf,p) (((IS_EOF((conf),(p)[1]))?((p)+1):((p)+2)))
static CONF *def_create(CONF_METHOD *meth); static CONF *def_create(CONF_METHOD *meth);
static int def_init_default(CONF *conf); static int def_init_default(CONF *conf);
@ -465,7 +466,7 @@ static void clear_comments(CONF *conf, char *p)
} }
if (IS_ESC(conf,*p)) if (IS_ESC(conf,*p))
{ {
p=scan_esc(p); p=scan_esc(conf,p);
continue; continue;
} }
if (IS_EOF(conf,*p)) if (IS_EOF(conf,*p))
@ -624,7 +625,7 @@ static char *eat_alpha_numeric(CONF *conf, char *p)
{ {
if (IS_ESC(conf,*p)) if (IS_ESC(conf,*p))
{ {
p=scan_esc(p); p=scan_esc(conf,p);
continue; continue;
} }
if (!IS_ALPHA_NUMERIC_PUNCT(conf,*p)) if (!IS_ALPHA_NUMERIC_PUNCT(conf,*p))