about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2004-10-27T13·00+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2004-10-27T13·00+0000
commit3277c9432ab718c8b80c54b228f8d5fbf94fb033 (patch)
tree6af9b959a1e5c961946fb3e855787f981d8a980c
parent463e2817c55fbd5b026d7dd630541b990b82418a (diff)
* Bug fix in parsing of /* ... */ comments; due to longest match
  regexp there could be only one such comment per file.

-rw-r--r--src/libexpr/lexer.l2
-rw-r--r--tests/Makefile.am2
-rw-r--r--tests/lang/parse-okay-regression-20041027.exp1
-rw-r--r--tests/lang/parse-okay-regression-20041027.nix11
4 files changed, 14 insertions, 2 deletions
diff --git a/src/libexpr/lexer.l b/src/libexpr/lexer.l
index 78d08d072565..38d403c9fade 100644
--- a/src/libexpr/lexer.l
+++ b/src/libexpr/lexer.l
@@ -76,7 +76,7 @@ inherit     { return INHERIT; }
 
 [ \t\n]+    /* eat up whitespace */
 \#[^\n]*    /* single-line comments */
-\/\*(.|\n)*\*\/  /* long comments */
+\/\*([^*]|\*[^\/])*\*\/  /* long comments */
 
 .           return yytext[0];
 
diff --git a/tests/Makefile.am b/tests/Makefile.am
index ae6da726b35a..038503aaad38 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -27,7 +27,7 @@ TESTS = init.sh lang.sh simple.sh dependencies.sh locking.sh parallel.sh \
 
 XFAIL_TESTS =
 
-foo:
+langtests:
 	$(TESTS_ENVIRONMENT) ./lang.sh
 
 include ../substitute.mk
diff --git a/tests/lang/parse-okay-regression-20041027.exp b/tests/lang/parse-okay-regression-20041027.exp
new file mode 100644
index 000000000000..f3bee28b86fc
--- /dev/null
+++ b/tests/lang/parse-okay-regression-20041027.exp
@@ -0,0 +1 @@
+Function([NoDefFormal("stdenv"),NoDefFormal("fetchurl")],Call(Select(Var("stdenv"),"mkDerivation"),Attrs([Bind("name",Str("libXi-6.0.1"),Pos("(string)",4,7)),Bind("src",Call(Var("fetchurl"),Attrs([Bind("url",Uri("http://freedesktop.org/~xlibs/release/libXi-6.0.1.tar.bz2"),Pos("(string)",6,8)),Bind("md5",Str("7e935a42428d63a387b3c048be0f2756"),Pos("(string)",7,8))])),Pos("(string)",5,6))])),Pos("(string)",1,2))
diff --git a/tests/lang/parse-okay-regression-20041027.nix b/tests/lang/parse-okay-regression-20041027.nix
new file mode 100644
index 000000000000..ae2e256eeaaa
--- /dev/null
+++ b/tests/lang/parse-okay-regression-20041027.nix
@@ -0,0 +1,11 @@
+{stdenv, fetchurl /* pkgconfig, libX11 */ }:
+
+stdenv.mkDerivation {
+  name = "libXi-6.0.1";
+  src = fetchurl {
+    url = http://freedesktop.org/~xlibs/release/libXi-6.0.1.tar.bz2;
+    md5 = "7e935a42428d63a387b3c048be0f2756";
+  };
+/*  buildInputs = [pkgconfig];
+  propagatedBuildInputs = [libX11]; */
+}