From 1341b94d6609468c1816a94c6cee40e69ba2da90 Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Sun, 30 May 2010 18:16:12 +0200 Subject: Untie structure members from structure In historic K&R C, structure members name space was global. For compatibility, search all structures for a member if it is not found. --- bcc/table.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'bcc/table.c') diff --git a/bcc/table.c b/bcc/table.c index e863fb5..ae34839 100644 --- a/bcc/table.c +++ b/bcc/table.c @@ -726,6 +726,24 @@ char *name; return symptr; } } + +#ifndef VERY_SMALL_MEMORY + /* In ancient UNIX, C structure members were global */ + if (!ancient) + return NULL; + + /* Find any structure member of given name */ + laststruct(name); + while (name[0]) { + if ((symptr = findlorg(name)) != NULL) + return symptr; + if (--name[1] == 0) { + name[1] = 255; + name[0]--; + } + } +#endif + return NULL; } #endif -- cgit v1.2.1