Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 9 Oct 2012 10:57:55 +1100 (EST)
From:      Peter Jeremy <peter@rulingia.com>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        peter@server.rulingia.com
Subject:   bin/172534: [patch] FICL - correct handling of bare comment lines
Message-ID:  <201210082357.q98Nvt4e080415@server.rulingia.com>
Resent-Message-ID: <201210092230.q99MUHI0043491@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         172534
>Category:       bin
>Synopsis:       [patch] FICL - correct handling of bare comment lines
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Oct 09 22:30:16 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Peter Jeremy
>Release:        FreeBSD 8.3-STABLE amd64
>Organization:
n/a
>Environment:
System: FreeBSD server.rulingia.com 8.3-STABLE FreeBSD 8.3-STABLE #18 r237444M: Sun Jul 8 10:47:08 EST 2012 root@server.rulingia.com:/var/obj/usr/src/sys/server amd64

>Description:
	Various forth files in sys/boot/ficl/softwords/ are converted
	to a C string code for embedding into the FICL binary using an
	awk script softcore.awk.  This script fails to strip out
	comments that consist of a sole backslash.  Whilst this isn't
	a problem for the standard set of SOFTWORDS, the
	not-normally-included oo.fr contains comments in the
	array-init definition that cause softcore.awk to emit the
	string "\ " - which gcc rejects.

>How-To-Repeat:
	# cd /sys/boot/ficl
	uncomment the line 'SOFTWORDS+= oo.fr classes.fr' in Makefile
	# make testmain
	fails with:
(cd /home/peter/forth/boot/ficl/softwords; cat softcore.fr jhlocal.fr marker.fr freebsd.fr ficllocal.fr  ifbrack.fr oo.fr classes.fr  | awk -f softcore.awk -v datestamp="`LC_ALL=C date`") > softcore.c
cc -O2 -pipe  -ffreestanding -mpreferred-stack-boundary=2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -std=gnu99   -m32 -march=i386 -I. -I/home/peter/forth/boot/ficl -I/home/peter/forth/boot/ficl/i386  -I/home/peter/forth/boot/ficl/../common -c softcore.c
softcore.c:917:5: warning: unknown escape sequence: '\040'
softcore.c:917:5: warning: unknown escape sequence: '\040'

>Fix:
	According to diff on stable-8, the following patch does not
	result in any change to the default softcore.c and only
	removes the two "\ " lines when the optional object-oriented
	words are added.

Index: sys/boot/ficl/softwords/softcore.awk
===================================================================
--- sys/boot/ficl/softwords/softcore.awk	(revision 241347)
+++ sys/boot/ficl/softwords/softcore.awk	(working copy)
@@ -75,7 +75,7 @@
 {
   gsub(/\t/, "    ");			# replace each tab with 4 spaces
   gsub(/\"/, "\\\"");			# escape quotes
-  gsub(/\\[[:space:]]+$/, "");		# toss empty comments
+  gsub(/\\[[:space:]]*$/, "");		# toss empty comments
 }
 
 # strip out empty lines
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201210082357.q98Nvt4e080415>