view TODO @ 178:0d5b9651b240

Merge Joerg's changes into upstream. (now that they've been thrashed out a bit, include CHANGES entries, etc.)
author David A. Holland
date Fri, 12 Jun 2015 03:05:49 -0400
parents e8f7ae63844f
children d65a2f2184cb
line wrap: on
line source

not implemented:
	- mode.input_allow_dollars.
	- column counts do not take tabstops into account.
	- mode.output_linenumbers.
	- mode.do_depend.
	- mode.do_macrolist.
	- mode.do_trace.
	- warns.endiflabels. (they cause errors)
	- warns.unused.	
	- the -iremap option.
	- #line directives.
	- $CPP_RESTRICTED
	- other environment variables

tidy up:
	- get rid of inlinedefs.h
	- use of places in and below macro.c is pretty bogus.
	- macro code should be reworked.
	- place_changefile is manky and wastes memory. Also, in an ideal
	  world we'd remember the place #line changed the name and refer
	  to it when printing errors.

fix:
	- "#if 0 && 1/0" should not crash; fix eval method.
	- an unterminated comment is reported as "no newline at end of file"
	  (which isn't fatal by default)
	- quote characters and comment delimiters that are emitted by
	  macros are not recognized. See:
		t34 (should produce a quote and FOO Q)
		t35 (similarly, this test may be redundant once it's fixed)
		t36 (C(3) should produce nothing)
		t37 (BC foo EC should produce nothing)
	  Joerg says comments like in t36 should be stripped exactly
	  twice, once when the macro is defined and again when it's
	  expanded. Note that gcc's cpp -traditional is getting t37
	  wrong, and it gets t36 wrong with -C.