diff options
| author | Arne Georg Gleditsch <argggh@taniquetil.(none)> | 2009-08-17 08:52:04 +0200 | 
|---|---|---|
| committer | Arne Georg Gleditsch <argggh@taniquetil.(none)> | 2009-08-17 08:52:04 +0200 | 
| commit | 7f5d4f37d8d3240b8c3a91be79c0585e6ca8a9d4 (patch) | |
| tree | f2f78cd7073fbf6a2dc238114e9fe834b40b9959 /lib/LXRng/Lang/C.pm | |
| parent | 18bbb85315b190ccf5698fab3a39b576e7a2dbcd (diff) | |
Handle embedded escaped string-terminators.
Diffstat (limited to 'lib/LXRng/Lang/C.pm')
| -rw-r--r-- | lib/LXRng/Lang/C.pm | 9 | 
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/LXRng/Lang/C.pm b/lib/LXRng/Lang/C.pm index db3a204..892e104 100644 --- a/lib/LXRng/Lang/C.pm +++ b/lib/LXRng/Lang/C.pm @@ -67,8 +67,9 @@ sub parsespec {      return ['atom',	'\\\\.',	undef,  	    'comment',	'/\*',		'\*/',  	    'comment',	'//',		"\$", -	    'string',	'"',		'"', -	    'string',	"'",		"'", +	    'string',	'"(?:[^\\\\]*\\\\.)*[^\\\\]*"', undef, +	    'string',	"'(?:[^\\\\]*\\\\.)*[^\\\\]*'", undef, +	    'atom',	'#\s*(?:ifn?def|define|else|endif|undef)', undef,  	    'include',	'#\s*include\s+"',	'"',  	    'include',	'#\s*include\s+<',	'>'];  } @@ -85,8 +86,8 @@ sub markuphandlers {  	qr/[^\n]+/ => sub { $markup->format_comment(@_) };      $subst{'string'} = new Subst::Complex -	qr/\n/        => $format_newline, -	qr/[^\n\"\']+/ => sub { $markup->format_string(@_) }; +	qr/\n/     => $format_newline, +	qr/[^\n]+/ => sub { $markup->format_string(@_) };      $subst{'include'} = new Subst::Complex  	qr/\n/ => $format_newline,  | 
