diff --git a/misc/optlib2c b/misc/optlib2c index 8306642f29..db2a86fec7 100755 --- a/misc/optlib2c +++ b/misc/optlib2c @@ -569,6 +569,23 @@ sub emit_patterns { emit_list $_[0], "patterns"; } +sub escape_dquotes { + my $input = shift; + my $output = ""; + + my $c; + + foreach $c (split //, $input) { + if ($c eq '"') { + $output = $output . '\\' . '"'; + } else { + $output = $output . $c; + } + } + + return $output; +} + sub emit_roledefs { my $opts = shift; @@ -580,8 +597,9 @@ sub emit_roledefs { static roleDefinition $opts->{'Clangdef'}${Kind}RoleTable [] = { EOF for (@{$_->{'roles'}}) { + my $desc = escape_dquotes $_->{'desc'}; print <{'name'}", "$_->{'desc'}" }, + { true, "$_->{'name'}", "$desc" }, EOF } @@ -652,8 +670,9 @@ EOF print <{'desc'}; print <{'letter'}\', "$_->{'name'}", "$_->{'desc'}", + $enabled, \'$_->{'letter'}\', "$_->{'name'}", "$desc", EOF if ($_->{'refonly'}) { print <{'extradefs'}}) { my $enabled = $_->{"enabled"}? "true": "false"; + my $desc = escape_dquotes $_->{'desc'}; print <{'fielddefs'}}) { my $enabled = $_->{"enabled"}? "true": "false"; + my $desc = escape_dquotes $_->{'desc'}; print <