mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-12 15:36:17 +01:00
Fix various bugs and excessive stack usage that crept in the conversion
Mon Mar 25 17:51:05 2002 Owen Taylor <otaylor@redhat.com> * glib-mkenums.in (parse_entries): Fix various bugs and excessive stack usage that crept in the conversion from gtk-mkenums. (#74431)
This commit is contained in:
parent
a95ec87a93
commit
648204c8bc
@ -1,3 +1,9 @@
|
||||
Mon Mar 25 17:51:05 2002 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* glib-mkenums.in (parse_entries): Fix various bugs and
|
||||
excessive stack usage that crept in the conversion from
|
||||
gtk-mkenums. (#74431)
|
||||
|
||||
Mon Mar 25 17:25:57 2002 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtype.c (g_type_free_instance): Wrap setting freed instance
|
||||
|
@ -30,24 +30,23 @@ sub parse_entries {
|
||||
my $looking_for_name = 0;
|
||||
|
||||
while (<$file>) {
|
||||
|
||||
# read lines until comment end is matched
|
||||
while (m@/\*([^*]|\*[^/*])*\**$@x) {
|
||||
# read lines until we have no open comments
|
||||
while (m@/\*([^*]|\*(?!/))*$@) {
|
||||
my $new;
|
||||
defined ($new = <>) || die "Unmatched comment in $ARGV";
|
||||
defined ($new = <$file>) || die "Unmatched comment in $ARGV";
|
||||
$_ .= $new;
|
||||
}
|
||||
# strip comments w/o options
|
||||
s@/\*[^<]([^*]|\*[^/*])*\**\*/@@gx;
|
||||
|
||||
s@/\*(?!<)
|
||||
([^*]+|\*(?!/))*
|
||||
\*/@@gx;
|
||||
|
||||
# strip newlines
|
||||
s/\n//;
|
||||
s@\n@ @;
|
||||
|
||||
# skip empty lines
|
||||
next if m@^\s*$@;
|
||||
|
||||
# print STDERR "xxx $_\n";
|
||||
|
||||
if ($looking_for_name) {
|
||||
if (/^\s*(\w+)/) {
|
||||
$enumname = $1;
|
||||
@ -60,15 +59,6 @@ sub parse_entries {
|
||||
my $file= "../$1";
|
||||
open NEWFILE, $file or die "Cannot open include file $file: $!\n";
|
||||
|
||||
# read lines until comment end is matched
|
||||
while (m@/\*([^*]|\*[^/*])*\**$@x) {
|
||||
my $new;
|
||||
defined ($new = <>) || die "Unmatched comment in $file_name";
|
||||
$_ .= $new;
|
||||
}
|
||||
# strip comments w/o options
|
||||
s@/\*[^<]([^*]|\*[^/*])*\**\*/@@gx;
|
||||
|
||||
if (parse_entries (\*NEWFILE, $NEWFILE)) {
|
||||
return 1;
|
||||
} else {
|
||||
@ -100,8 +90,6 @@ sub parse_entries {
|
||||
@x) {
|
||||
my ($name, $value, $options) = ($1,$2,$3);
|
||||
|
||||
# print STDERR "xxx \"$name\" \"$value\" \"$otions\"\n";
|
||||
|
||||
if (!defined $flags && defined $value && $value =~ /<</) {
|
||||
$seenbitshift = 1;
|
||||
}
|
||||
@ -212,17 +200,17 @@ while (<>) {
|
||||
$firstenum = 1; # Flag to print filename at next enum
|
||||
}
|
||||
|
||||
# read lines until comment end is matched
|
||||
while (m@/\*([^*]|\*[^/*])*\**$@x) {
|
||||
# read lines until we have no open comments
|
||||
while (m@/\*([^*]|\*(?!/))*$@) {
|
||||
my $new;
|
||||
defined ($new = <>) || die "Unmatched comment in $ARGV";
|
||||
$_ .= $new;
|
||||
}
|
||||
# strip comments w/o options
|
||||
s@/\*[^<]([^*]|\*[^/*])*\**\*/@@gx;
|
||||
|
||||
# print STDERR "xxx $_\n";
|
||||
|
||||
s@/\*(?!<)
|
||||
([^*]+|\*(?!/))*
|
||||
\*/@@gx;
|
||||
|
||||
if (m@^\s*typedef\s+enum\s*
|
||||
({)?\s*
|
||||
(?:/\*<
|
||||
|
Loading…
Reference in New Issue
Block a user