Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/TRADCPP]: src/external/bsd/tradcpp/dist Import tradcpp 0.5.3
details: https://anonhg.NetBSD.org/src/rev/c221d354bca8
branches: TRADCPP
changeset: 369685:c221d354bca8
user: dholland <dholland%NetBSD.org@localhost>
date: Sat Aug 27 21:46:47 2022 +0000
description:
Import tradcpp 0.5.3
diffstat:
external/bsd/tradcpp/dist/.hg_archival.txt | 4 +
external/bsd/tradcpp/dist/.hgtags | 9 +
external/bsd/tradcpp/dist/CHANGES | 91 +
external/bsd/tradcpp/dist/Makefile | 11 +
external/bsd/tradcpp/dist/TODO | 37 +
external/bsd/tradcpp/dist/array.c | 115 ++
external/bsd/tradcpp/dist/array.h | 279 +++++
external/bsd/tradcpp/dist/bool.h | 41 +
external/bsd/tradcpp/dist/config.h | 174 +++
external/bsd/tradcpp/dist/directive.c | 733 +++++++++++++
external/bsd/tradcpp/dist/directive.h | 49 +
external/bsd/tradcpp/dist/eval.c | 767 ++++++++++++++
external/bsd/tradcpp/dist/eval.h | 32 +
external/bsd/tradcpp/dist/files.c | 441 ++++++++
external/bsd/tradcpp/dist/files.h | 40 +
external/bsd/tradcpp/dist/inlinedefs.h | 39 +
external/bsd/tradcpp/dist/macro.c | 1313 +++++++++++++++++++++++++
external/bsd/tradcpp/dist/macro.h | 51 +
external/bsd/tradcpp/dist/main.c | 1113 +++++++++++++++++++++
external/bsd/tradcpp/dist/mode.h | 66 +
external/bsd/tradcpp/dist/output.c | 203 +++
external/bsd/tradcpp/dist/output.h | 31 +
external/bsd/tradcpp/dist/place.c | 395 +++++++
external/bsd/tradcpp/dist/place.h | 69 +
external/bsd/tradcpp/dist/tests/Makefile | 45 +
external/bsd/tradcpp/dist/tests/subdir/test.h | 1 +
external/bsd/tradcpp/dist/tests/t01.c | 1 +
external/bsd/tradcpp/dist/tests/t01.good | 1 +
external/bsd/tradcpp/dist/tests/t02.c | 2 +
external/bsd/tradcpp/dist/tests/t02.good | 1 +
external/bsd/tradcpp/dist/tests/t03.c | 2 +
external/bsd/tradcpp/dist/tests/t03.good | 1 +
external/bsd/tradcpp/dist/tests/t04.c | 2 +
external/bsd/tradcpp/dist/tests/t04.good | 1 +
external/bsd/tradcpp/dist/tests/t05.c | 2 +
external/bsd/tradcpp/dist/tests/t05.good | 1 +
external/bsd/tradcpp/dist/tests/t06.c | 2 +
external/bsd/tradcpp/dist/tests/t06.good | 1 +
external/bsd/tradcpp/dist/tests/t07.c | 3 +
external/bsd/tradcpp/dist/tests/t07.good | 1 +
external/bsd/tradcpp/dist/tests/t08.c | 41 +
external/bsd/tradcpp/dist/tests/t08.good | 21 +
external/bsd/tradcpp/dist/tests/t09.c | 6 +
external/bsd/tradcpp/dist/tests/t10.c | 3 +
external/bsd/tradcpp/dist/tests/t10.good | 2 +
external/bsd/tradcpp/dist/tests/t11.c | 2 +
external/bsd/tradcpp/dist/tests/t11.good | 1 +
external/bsd/tradcpp/dist/tests/t12.c | 2 +
external/bsd/tradcpp/dist/tests/t12.good | 1 +
external/bsd/tradcpp/dist/tests/t13.c | 4 +
external/bsd/tradcpp/dist/tests/t13.good | 2 +
external/bsd/tradcpp/dist/tests/t14.c | 4 +
external/bsd/tradcpp/dist/tests/t14.good | 3 +
external/bsd/tradcpp/dist/tests/t15.c | 3 +
external/bsd/tradcpp/dist/tests/t15.good | 2 +
external/bsd/tradcpp/dist/tests/t16.c | 11 +
external/bsd/tradcpp/dist/tests/t16.good | 11 +
external/bsd/tradcpp/dist/tests/t17.c | 2 +
external/bsd/tradcpp/dist/tests/t17.good | 1 +
external/bsd/tradcpp/dist/tests/t18.c | 2 +
external/bsd/tradcpp/dist/tests/t19.c | 3 +
external/bsd/tradcpp/dist/tests/t19.good | 1 +
external/bsd/tradcpp/dist/tests/t20.c | 1 +
external/bsd/tradcpp/dist/tests/t21.c | 3 +
external/bsd/tradcpp/dist/tests/t21.good | 2 +
external/bsd/tradcpp/dist/tests/t22.c | 2 +
external/bsd/tradcpp/dist/tests/t22.good | 1 +
external/bsd/tradcpp/dist/tests/t23.c | 8 +
external/bsd/tradcpp/dist/tests/t23.good | 4 +
external/bsd/tradcpp/dist/tests/t24.c | 67 +
external/bsd/tradcpp/dist/tests/t24.good | 5 +
external/bsd/tradcpp/dist/tests/t25.c | 4 +
external/bsd/tradcpp/dist/tests/t25.good | 1 +
external/bsd/tradcpp/dist/tests/t26.c | 4 +
external/bsd/tradcpp/dist/tests/t26.good | 3 +
external/bsd/tradcpp/dist/tests/t27.c | 29 +
external/bsd/tradcpp/dist/tests/t27.good | 24 +
external/bsd/tradcpp/dist/tests/t28.c | 53 +
external/bsd/tradcpp/dist/tests/t28.good | 2 +
external/bsd/tradcpp/dist/tests/t29.c | 4 +
external/bsd/tradcpp/dist/tests/t30.c | 2 +
external/bsd/tradcpp/dist/tests/t30.good | 1 +
external/bsd/tradcpp/dist/tests/t31.c | 6 +
external/bsd/tradcpp/dist/tests/t31.good | 3 +
external/bsd/tradcpp/dist/tests/t32.c | 21 +
external/bsd/tradcpp/dist/tests/t32.good | 12 +
external/bsd/tradcpp/dist/tests/t33.c | 6 +
external/bsd/tradcpp/dist/tests/t33.good | 3 +
external/bsd/tradcpp/dist/tests/t34.c | 5 +
external/bsd/tradcpp/dist/tests/t34.good | 1 +
external/bsd/tradcpp/dist/tests/t35.c | 6 +
external/bsd/tradcpp/dist/tests/t35.good | 1 +
external/bsd/tradcpp/dist/tests/t36.c | 7 +
external/bsd/tradcpp/dist/tests/t36.good | 4 +
external/bsd/tradcpp/dist/tests/t37.c | 19 +
external/bsd/tradcpp/dist/tests/t37.good | 9 +
external/bsd/tradcpp/dist/tests/t38.c | 11 +
external/bsd/tradcpp/dist/tests/t38.good | 8 +
external/bsd/tradcpp/dist/tests/t39.c | 21 +
external/bsd/tradcpp/dist/tests/t39.good | 11 +
external/bsd/tradcpp/dist/tests/t40.c | 6 +
external/bsd/tradcpp/dist/tests/t40.good | 1 +
external/bsd/tradcpp/dist/tests/tradcpp.sh | 36 +
external/bsd/tradcpp/dist/tradcpp.1 | 361 ++++++
external/bsd/tradcpp/dist/union.h | 36 +
external/bsd/tradcpp/dist/utils.c | 246 ++++
external/bsd/tradcpp/dist/utils.h | 78 +
external/bsd/tradcpp/dist/version.h | 33 +
108 files changed, 7469 insertions(+), 0 deletions(-)
diffs (truncated from 7901 to 300 lines):
diff -r 8cec458d70ff -r c221d354bca8 external/bsd/tradcpp/dist/.hg_archival.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/external/bsd/tradcpp/dist/.hg_archival.txt Sat Aug 27 21:46:47 2022 +0000
@@ -0,0 +1,4 @@
+repo: 67fa1db0651cd970068d0660e1b695e30b04f904
+node: 9aa91d3fe3a39cb8af08f231ba22a3aa1bbd57eb
+branch: default
+tag: release-0.5.3
diff -r 8cec458d70ff -r c221d354bca8 external/bsd/tradcpp/dist/.hgtags
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/external/bsd/tradcpp/dist/.hgtags Sat Aug 27 21:46:47 2022 +0000
@@ -0,0 +1,9 @@
+8a955e3dda2ce67fd729944f4e19316d005c0731 posted-20101220
+1e4eef5bf88d70a98396b175cd0891a41d79388e release-0.1
+3ad1cd80f5a07b0ce19131f3e58f2560e4a30d9d release-0.2
+31fc4251ec3bd624af9d00592b7a9ec9d22a611a release-0.3
+85b66cc0344e6222c92b8dd324542ec6f64239e9 release-0.3.1
+281317d304782fe3d60f4786a1480fe5ce485ebd release-0.4
+557824449ec7df3d63b491efbf53c9b73589346d release-0.5
+ab06d46bf5cc46cdacba18d82a6b380bfe09d81e release-0.5.1
+18b872f362175fd78ddf1f12ee24f85ef19b6254 release-0.5.2
diff -r 8cec458d70ff -r c221d354bca8 external/bsd/tradcpp/dist/CHANGES
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/external/bsd/tradcpp/dist/CHANGES Sat Aug 27 21:46:47 2022 +0000
@@ -0,0 +1,91 @@
+release 0.5.3 (20190121)
+ - Fix markup typo in the man page.
+ - Abort on line numbering or column numbering overflow. Line
+ numbers are limited to values that fit in "unsigned int". Also
+ reject input lines longer than 2^32-1 characters. It seems
+ reasonable to presume that any input that violates these
+ constraints is someone screwing around and not a serious attempt
+ to compile or preprocess anything useful. Done in response to
+ n2129, but without getting into any of the silliness found there.
+ - Recognize __ia64__ for IA64 builds.
+ - Recognize __aarch64__ for 64-bit ARM builds, as sent in by
+ various people.
+ - Recognize __riscv__ and __riscv64__ for risc-v builds.
+
+release 0.5.2 (20160904)
+ - Fix typo in -U usage message, noticed by Joerg.
+ - Add a -debuglog option to send an execution trace to a file.
+ Intended to be used when debugging imake templates and other
+ complex input, not for debugging tradcpp itself.
+
+release 0.5.1 (20150612)
+ - Fix a stupid regression in 0.5 that causes it to not recognize a
+ pile of options.
+ - Fix output corruption caused by mishandling which macros are
+ currently in use. In particular, "curmacro" is only valid while
+ we're parsing a macro name and arguments, and can change once we
+ start expanding, so don't use it to clear the in-use flag. This
+ problem has been around all along but was only just exposed.
+ - Also don't set curmacro to null after calling expand_domacro as
+ that can cause us to think a macro name we just read is defined().
+ This one was introduced in 0.5.
+ - Don't use "remove" as a local variable as gcc 4.1 gets upset
+ about it vs. remove(3) in stdio.h.
+
+release 0.5 (20150612)
+ - Don't report unclosed comments as "No newline at end of file".
+ - Don't rely on <stdbool.h> existing, as (predictably) it doesn't
+ work on Solaris.
+ - Similarly, don't rely on C11 anonymous unions as the Solaris
+ compiler vomits on them.
+ - Typo fix in man page from Jason McIntyre; and change "Usage" to
+ "usage" in usage for pedantic reasons, from Igor Sobrado.
+ - Accept "-" as either input or output file name to mean stdin or
+ stdout respectively. Suggested by Jonathan Gray.
+ - Fix output spacing behavior to match gcc when newlines appear in or
+ while looking for macro arguments. Partly from Joerg Sonnenberger.
+ - Implement __FILE__ and __LINE__ macros. Mostly from Joerg Sonnenberger.
+ - Implement #line. Partly from Joerg Sonnenberger.
+ - Declare usage() with PF(). From wiz.
+
+release 0.4 (20130713)
+ - Fix stupid build problem introduced in 0.3.1.
+ - Accept and ignore -m32, which imake issues willy-nilly on a bunch
+ of platforms. I thought this had already been done, but apparently
+ not.
+ - Don't use the <err.h> functions. There are still people out there
+ using legacy systems missing them.
+ - Sort out some more issues pertaining to handling quoted strings.
+ - Add some more tests.
+
+release 0.3.1 (20130709)
+ - Don't leak memory and assert if a bad command-line option comes
+ after a -D or a -include foo.
+ - Since imake is a principal application for tradcpp and imake carefully
+ hides what it's doing when you run it, when rejecting an invalid option
+ be sure to report *what* that option is.
+
+release 0.3 (20130616)
+ - Don't eval the control expression of the first #if of a block when
+ already in a false block; it might not be valid. Reported by
+ Baptiste Daroussin.
+ - Don't recognize comments within character constants.
+ - Don't recognize macro argument parentheses or commas within strings,
+ or within character constants either.
+
+release 0.2 (20130611)
+ - auto-recognize more builtin PowerPC and mips macros
+ - pass -Wunused (partly from Baptiste Daroussin)
+ - allow absolute paths in include files (partly from Baptiste Daroussin)
+ - don't use getprogname() in the name of portability
+ - add tests arising from December 2010 tech-toolchain thread (one
+ from der Mouse, one of mine)
+ - clean out usage of sys/cdefs.h macros and don't use the implementation
+ namespace
+ - make -Wcomment work again
+ - fix handling of relative includes
+ - provide a man page
+ - other minor improvements
+
+release 0.1 (20130610)
+ - first release, works with at least some imake templates
diff -r 8cec458d70ff -r c221d354bca8 external/bsd/tradcpp/dist/Makefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/external/bsd/tradcpp/dist/Makefile Sat Aug 27 21:46:47 2022 +0000
@@ -0,0 +1,11 @@
+# $NetBSD: Makefile,v 1.1.1.1 2022/08/27 21:46:47 dholland Exp $
+
+PROG= tradcpp
+SRCS= main.c \
+ files.c directive.c eval.c macro.c output.c \
+ place.c array.c utils.c
+WARNS= 5
+
+#DBG=-g
+
+.include <bsd.prog.mk>
diff -r 8cec458d70ff -r c221d354bca8 external/bsd/tradcpp/dist/TODO
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/external/bsd/tradcpp/dist/TODO Sat Aug 27 21:46:47 2022 +0000
@@ -0,0 +1,37 @@
+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.
+ - $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.
+ - 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.
+ - remove the intentionally undocumented -p option and generate
+ proper linenumber output. (also, in this code what happens if
+ a comment spans files? I bet currently it will emit the line
+ number into the comment.)
diff -r 8cec458d70ff -r c221d354bca8 external/bsd/tradcpp/dist/array.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/external/bsd/tradcpp/dist/array.c Sat Aug 27 21:46:47 2022 +0000
@@ -0,0 +1,115 @@
+/*-
+ * Copyright (c) 2009 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by David A. Holland.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#define ARRAYINLINE
+#include "array.h"
+
+struct array *
+array_create(void)
+{
+ struct array *a;
+
+ a = domalloc(sizeof(*a));
+ array_init(a);
+ return a;
+}
+
+void
+array_destroy(struct array *a)
+{
+ array_cleanup(a);
+ dofree(a, sizeof(*a));
+}
+
+void
+array_init(struct array *a)
+{
+ a->num = a->max = 0;
+ a->v = NULL;
+}
+
+void
+array_cleanup(struct array *a)
+{
+ arrayassert(a->num == 0);
+ dofree(a->v, a->max * sizeof(a->v[0]));
+#ifdef ARRAYS_CHECKED
+ a->v = NULL;
+#endif
+}
+
+void
+array_setsize(struct array *a, unsigned num)
+{
+ unsigned newmax;
+ void **newptr;
+
+ if (num > a->max) {
+ newmax = a->max;
+ while (num > newmax) {
+ newmax = newmax ? newmax*2 : 4;
+ }
+ newptr = dorealloc(a->v, a->max * sizeof(a->v[0]),
+ newmax * sizeof(a->v[0]));
+ a->v = newptr;
+ a->max = newmax;
+ }
+ a->num = num;
+}
+
+void
+array_insert(struct array *a, unsigned index_)
+{
+ unsigned movers;
+
+ arrayassert(a->num <= a->max);
+ arrayassert(index_ < a->num);
+
+ movers = a->num - index_;
+
+ array_setsize(a, a->num + 1);
+
+ memmove(a->v + index_+1, a->v + index_, movers*sizeof(*a->v));
+}
+
+void
+array_remove(struct array *a, unsigned index_)
+{
+ unsigned movers;
+
+ arrayassert(a->num <= a->max);
+ arrayassert(index_ < a->num);
+
+ movers = a->num - (index_ + 1);
+ memmove(a->v + index_, a->v + index_+1, movers*sizeof(*a->v));
+ a->num--;
+}
diff -r 8cec458d70ff -r c221d354bca8 external/bsd/tradcpp/dist/array.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/external/bsd/tradcpp/dist/array.h Sat Aug 27 21:46:47 2022 +0000
@@ -0,0 +1,279 @@
+/*-
+ * Copyright (c) 2009 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
Home |
Main Index |
Thread Index |
Old Index