public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* libgcj/1338: StreamTokenizer does not handle /* comments correctly
@ 2000-12-20 12:25 osk
0 siblings, 0 replies; only message in thread
From: osk @ 2000-12-20 12:25 UTC (permalink / raw)
To: java-gnats
>Number: 1338
>Category: libgcj
>Synopsis: StreamTokenizer does not handle /* comments correctly
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: warrenl
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Dec 20 12:19:10 PST 2000
>Closed-Date:
>Last-Modified: Wed Aug 9 12:50:01 PDT 2000
>Originator: Oskar Liljeblad
>Release: recent libgcj (not the latest though)
>Organization:
>Environment:
>Description:
The class java.io.StreamTokenizer doesn't handle '/*'-comments
correctly. This is because the libgcj/Classpath StreamTokenizer
checks for commentChar's first, then slashStar-comments.
The '/' character is by default set as a comment character -
a comment that ends at EOL.
Oskar
>How-To-Repeat:
import java.io.IOException;
import java.io.StringReader;
import java.io.StreamTokenizer;
public class PRxxx {
public static void printTokenization(String s) {
StringReader r = new StringReader(s);
StreamTokenizer st = new StreamTokenizer(r);
st.slashStarComments(true);
try {
while (st.nextToken() != StreamTokenizer.TT_EOF) {
System.out.print(st.ttype+"["+st.sval+","+st.nval+"] ");
}
} catch (IOException e) {
System.out.println("[IOException]");
}
System.out.println();
}
public static void main(String[] args)
throws IOException {
printTokenization("alpha /* bleh */ gamma");
printTokenization("alpha / bleh");
printTokenization("alpha /* bleh");
}
}
// Good output (note the extra space at end of lines):
// -3[alpha,0.0] -3[gamma,0.0]
// -3[alpha,0.0]
// -3[alpha,0.0]
>Fix:
See the patch0 file. This patch may introduce other (subtle)
bugs so it would be nice if the original author (Warren Levy)
or someone else could verify it.
>Release-Note:
>Audit-Trail:
Formerly PR java.io/313
Responsible-Changed-From-To: tromey->warrenl
Responsible-Changed-By: tromey
Responsible-Changed-When: Wed Aug 9 12:43:59 2000
Responsible-Changed-Why:
Warren wrote this class.
Warren, this PR includes a patch.
Please look at it when you have time.
From: Tom Tromey <tromey@cygnus.com>
To: osk@hem.passagen.se
Cc: java-gnats@sourceware.cygnus.com
Subject: Re: java.io/313: StreamTokenizer does not handle /* comments correctly
Date: Wed, 9 Aug 2000 12:41:30 -0700 (PDT)
I'm putting this test case into Mauve.
Thanks,
Tom
From: tromey@cygnus.com
To: java-gnats@sourceware.cygnus.com, osk@hem.passagen.se, tromey@cygnus.com,
warrenl@cygnus.com
Cc:
Subject: Re: java.io/313
Date: 9 Aug 2000 19:43:59 -0000
Synopsis: StreamTokenizer does not handle /* comments correctly
Responsible-Changed-From-To: tromey->warrenl
Responsible-Changed-By: tromey
Responsible-Changed-When: Wed Aug 9 12:43:59 2000
Responsible-Changed-Why:
Warren wrote this class.
Warren, this PR includes a patch.
Please look at it when you have time.
http://sources.redhat.com/cgi-bin/gnatsweb.pl?cmd=view&pr=313&database=java
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="patch0"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="patch0"
LS0tIFN0cmVhbVRva2VuaXplci5qYXZhLm9sZAlTYXQgQXVnICA1IDA5OjMzOjU0IDIwMDAKKysr
IFN0cmVhbVRva2VuaXplci5qYXZhCVdlZCBBdWcgIDkgMjA6NTI6MjIgMjAwMApAQCAtMjg5LDYg
KzI4OSw1MCBAQAogCSAgICByZXR1cm4gKHR0eXBlID0gVFRfRU9MKTsKIAl9CiAKKyAgICBpZiAo
Y2ggPT0gJy8nKQorICAgICAgaWYgKChjaCA9IGluLnJlYWQoKSkgPT0gJy8nICYmIHNsYXNoU2xh
c2gpCisgICAgCXsKKyAgICAJICB3aGlsZSAoKGNoID0gaW4ucmVhZCgpKSAhPSAnXG4nICYmIGNo
ICE9ICdccicgJiYgY2ggIT0gVFRfRU9GKQorICAgIAkgICAgOworICAgIAkgIGlmIChjaCAhPSBU
VF9FT0YpCisgICAgCSAgICBpbi51bnJlYWQoY2gpOworICAgIAkgIHJldHVybiBuZXh0VG9rZW4o
KTsgLy8gUmVjdXJzaXZlLCBidXQgbm90IHRvbyBkZWVwIGluIG5vcm1hbCBjYXNlcworICAgIAl9
CisgICAgICBlbHNlIGlmIChjaCA9PSAnKicgJiYgc2xhc2hTdGFyKQorICAgIAl7CisgICAgCSAg
d2hpbGUgKHRydWUpCisgICAgCSAgICB7CisgICAgCSAgICAgIGNoID0gaW4ucmVhZCgpOworICAg
IAkgICAgICBpZiAoY2ggPT0gJyonKQorICAgIAkJeworICAgIAkJICBpZiAoKGNoID0gaW4ucmVh
ZCgpKSA9PSAnLycpCisgICAgCQkgICAgYnJlYWs7CisgICAgCQkgIGVsc2UgaWYgKGNoICE9IFRU
X0VPRikKKyAgICAJCSAgICBpbi51bnJlYWQoY2gpOworICAgIAkJfQorICAgIAkgICAgICBlbHNl
IGlmIChjaCA9PSAnXG4nIHx8IGNoID09ICdccicpCisgICAgCQl7CisgICAgCQkgIGxpbmVOdW1i
ZXIrKzsKKyAgICAJCSAgaWYgKGNoID09ICdccicgJiYgKGNoID0gaW4ucmVhZCgpKSAhPSAnXG4n
KQorICAgIAkJICAgIHsKKyAgICAJCSAgICAgIGlmIChjaCAhPSBUVF9FT0YpCisgICAgCQkJaW4u
dW5yZWFkKGNoKTsKKyAgICAJCSAgICB9CisgICAgCQl9CisgICAgCSAgICAgIGVsc2UgaWYgKGNo
ID09IFRUX0VPRikKKyAgICAJCXsKKyAgICAJCSAgYnJlYWs7CisgICAgCQl9CisgICAgCSAgICB9
CisgICAgCSAgcmV0dXJuIG5leHRUb2tlbigpOyAvLyBSZWN1cnNpdmUsIGJ1dCBub3QgdG9vIGRl
ZXAgaW4gbm9ybWFsIGNhc2VzCisgICAgCX0KKyAgICAgIGVsc2UKKyAgICAJeworICAgIAkgIGlm
IChjaCAhPSBUVF9FT0YpCisgICAgCSAgICBpbi51bnJlYWQoY2gpOworICAgIAkgIGNoID0gJy8n
OworICAgIAl9CisKICAgICBpZiAoY2ggPT0gVFRfRU9GKQogICAgICAgdHR5cGUgPSBUVF9FT0Y7
CiAgICAgZWxzZSBpZiAoaXNOdW1lcmljKGNoKSkKQEAgLTQwNSw1MCArNDQ5LDYgQEAKICAgICAg
IH0KICAgICBlbHNlCiAgICAgICB7Ci0gICAgICAgIGlmIChjaCA9PSAnLycpCi0JICBpZiAoKGNo
ID0gaW4ucmVhZCgpKSA9PSAnLycgJiYgc2xhc2hTbGFzaCkKLQkgICAgewotCSAgICAgIHdoaWxl
ICgoY2ggPSBpbi5yZWFkKCkpICE9ICdcbicgJiYgY2ggIT0gJ1xyJyAmJiBjaCAhPSBUVF9FT0Yp
Ci0JCTsKLQkgICAgICBpZiAoY2ggIT0gVFRfRU9GKQotCQlpbi51bnJlYWQoY2gpOwotCSAgICAg
IHJldHVybiBuZXh0VG9rZW4oKTsgLy8gUmVjdXJzaXZlLCBidXQgbm90IHRvbyBkZWVwIGluIG5v
cm1hbCBjYXNlcwotCSAgICB9Ci0JICBlbHNlIGlmIChjaCA9PSAnKicgJiYgc2xhc2hTdGFyKSAK
LQkgICAgewotCSAgICAgIHdoaWxlICh0cnVlKQotCQl7Ci0JICAgICAgICAgIGNoID0gaW4ucmVh
ZCgpOwotCQkgIGlmIChjaCA9PSAnKicpCi0JCSAgICB7Ci0JCSAgICAgIGlmICgoY2ggPSBpbi5y
ZWFkKCkpID09ICcvJykKLQkJCWJyZWFrOwotCQkgICAgICBlbHNlIGlmIChjaCAhPSBUVF9FT0Yp
Ci0JCQlpbi51bnJlYWQoY2gpOwotCQkgICAgfQotCQkgIGVsc2UgaWYgKGNoID09ICdcbicgfHwg
Y2ggPT0gJ1xyJykKLQkJICAgIHsKLQkJICAgICAgbGluZU51bWJlcisrOwotCQkgICAgICBpZiAo
Y2ggPT0gJ1xyJyAmJiAoY2ggPSBpbi5yZWFkKCkpICE9ICdcbicpCi0JCQl7Ci0JCSAgICAgICAg
ICBpZiAoY2ggIT0gVFRfRU9GKQotCQkJICAgIGluLnVucmVhZChjaCk7Ci0JCQl9Ci0JCSAgICB9
Ci0JCSAgZWxzZSBpZiAoY2ggPT0gVFRfRU9GKQotCQkgICAgewotCQkgICAgICBicmVhazsKLQkJ
ICAgIH0KLQkJfQotCSAgICAgIHJldHVybiBuZXh0VG9rZW4oKTsgLy8gUmVjdXJzaXZlLCBidXQg
bm90IHRvbyBkZWVwIGluIG5vcm1hbCBjYXNlcwotCSAgICB9Ci0JICBlbHNlCi0JICAgIHsKLQkg
ICAgICBpZiAoY2ggIT0gVFRfRU9GKQotCQlpbi51bnJlYWQoY2gpOwotCSAgICAgIGNoID0gJy8n
OwotCSAgICB9Ci0KIAl0dHlwZSA9IGNoOwogICAgICAgfQogCg==
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2000-12-20 12:25 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-12-20 12:25 libgcj/1338: StreamTokenizer does not handle /* comments correctly osk
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).