From 34a6676dc82ef3fbf09afaeceb09588a568f1b60 Mon Sep 17 00:00:00 2001 From: rlar Date: Sat, 11 Dec 2010 18:34:29 +0000 Subject: [PATCH] don't transform operators ('&|' -> '&&' '&' -> '&&' etc) pass them *literally* --- ChangeLog | 4 ++++ src/frontend/inpcom.c | 12 ++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 29bc8b807..14cf05fcf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2010-12-11 Robert Larice + * src/frontend/inpcom.c : + don't transform operators ('&|' -> '&&' '&' -> '&&' etc) pass them *literally* + 2010-12-11 Holger Vogt * inpcom.c: && and || in B source, bug no. 3127808 * src/makefile.am: trailing white spaces removed diff --git a/src/frontend/inpcom.c b/src/frontend/inpcom.c index c76b0cf09..fdffd8941 100644 --- a/src/frontend/inpcom.c +++ b/src/frontend/inpcom.c @@ -4354,15 +4354,11 @@ static void inp_bsource_compat(struct line *deck) } else if ((actchar == '|') || (actchar == '&')) { - buf[0] = actchar; - buf[1] = actchar; - buf[2] = '\0'; - cwl->wl_word = copy(buf); - str_ptr++; + char *beg = str_ptr++; + if ((*str_ptr == '|') || (*str_ptr == '&')) + str_ptr++; + cwl->wl_word = copy_substring(beg, str_ptr); ustate = 1; /* we have an operator */ - /* just skip the second & or | */ - if ((*str_ptr == '|') || (*str_ptr == '&')) - str_ptr++; } else if ((actchar == '-') && (ustate == 0)) { buf[0] = actchar;