[jira] Commented: (VELOCITY-587) Backslashes throw lexical errors in double-quoted strings
[ https://issues.apache.org/jira/browse/VELOCITY-587?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12568208#action_12568208 ] Nathan Bubna commented on VELOCITY-587: --- We've had a lot of debates on escaping issues over the years. Feel free to search the archives if you'd like to be caught up on the various arguments. But perhaps it will suffice to point out that the only escaping solutions for strings (double or single quoted) that we have ever achieved a consensus on are VELOCITY-520 and VELOCITY-555. 520 was quickly patched, but sadly, Geir never shared the patch for 555 and no one has stepped up to implement it themselves yet. Things like VELOCITY-519 may be considered if/when someone starts work on Velocity Engine 2.0, but not before. And when that time comes, you can be sure that i will always be loudly advocating for the maximum possible consistency between parsing done in interpolated strings and parsing done elsewhere. If we do make the backslash a general escape character, you can bet i'll argue to have it work the same everywhere. :) Backslashes throw lexical errors in double-quoted strings - Key: VELOCITY-587 URL: https://issues.apache.org/jira/browse/VELOCITY-587 Project: Velocity Issue Type: Bug Affects Versions: 1.6 Reporter: Jon Seymour Priority: Minor Fix For: 1.6 The VTL doesn't currently provide a way to express strings containing a single backslash (\) #set($backslash=\) results in a lexical error during template parsing. #set($backslash=\\) results in $backslash being assigned a string containing two backslashes (\\) It appears the only workaround available now is to construct a variable containing just a single backslash with this idiom: #set($twobackslashes=\\) #set($backslash=$twobackslashes.substring(0,1)) Even if this can't be fixed in the parser, the documentation should be updated to define a preferred idiom for obtaining a string containing a single backslash. jon. note: this issue partially duplicates a comment by Guido Deinhammer on issue #454 regarding other escaping issues. I have raised a separate issue, so that this one can be addressed separately, if desired. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[jira] Commented: (VELOCITY-587) Backslashes throw lexical errors in double-quoted strings
[ https://issues.apache.org/jira/browse/VELOCITY-587?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12568136#action_12568136 ] Christopher Schultz commented on VELOCITY-587: -- IMO, you should be able to be a double-quote into a doubly-quoted string. It sounds like Nathan is saying that the backslash should only be used to escape references and directives/macros. I think the backslash should be extended to act like a more general escape character. For instance, I would expect this to work: #set($doubleQuote = \) Instead of $doubleQuote containing a single double-quote, it contains a backslash plus a single double-quote (at least in Velocity 1.4). I would think that it would actually be easier to make the parser treat backslash as a general escape character than to have different rules in different places (the different rules being that backslashes are consumed in some circumstances but not in others). Backslashes throw lexical errors in double-quoted strings - Key: VELOCITY-587 URL: https://issues.apache.org/jira/browse/VELOCITY-587 Project: Velocity Issue Type: Bug Affects Versions: 1.6 Reporter: Jon Seymour Priority: Minor Fix For: 1.6 The VTL doesn't currently provide a way to express strings containing a single backslash (\) #set($backslash=\) results in a lexical error during template parsing. #set($backslash=\\) results in $backslash being assigned a string containing two backslashes (\\) It appears the only workaround available now is to construct a variable containing just a single backslash with this idiom: #set($twobackslashes=\\) #set($backslash=$twobackslashes.substring(0,1)) Even if this can't be fixed in the parser, the documentation should be updated to define a preferred idiom for obtaining a string containing a single backslash. jon. note: this issue partially duplicates a comment by Guido Deinhammer on issue #454 regarding other escaping issues. I have raised a separate issue, so that this one can be addressed separately, if desired. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[jira] Commented: (VELOCITY-587) Backslashes throw lexical errors in double-quoted strings
[ https://issues.apache.org/jira/browse/VELOCITY-587?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12567831#action_12567831 ] Jon Seymour commented on VELOCITY-587: -- Etienne, thanks for pointing out the use of single quotes - I should have read the doco better. If I had had my shell-script hat on this would have occurred to me but since I didn't have the VTL reference handy when I was struggling with this issue, I had incorrectly assumed that '\' would be treated as a Java character reference. Nathan: I guess it doesn't really surprise me that #set($foo=\) is a parsing error, if \'s are meant to be treated as escape characters when parsing strings. More surprising was the failure of #set($foo=\.) since based on other experiments I expected the \ to be preserved. It would be good to have some clarity on what \ is meant to do in double quoted strings since I don't think (but I may be wrong) this is specified clearly anywhere. Perhaps it would be useful to include a section about the behaviour of backslashes in double quoted strings in the user's guide? jon. Backslashes throw lexical errors in double-quoted strings - Key: VELOCITY-587 URL: https://issues.apache.org/jira/browse/VELOCITY-587 Project: Velocity Issue Type: Bug Affects Versions: 1.6 Reporter: Jon Seymour Priority: Minor Fix For: 1.6 The VTL doesn't currently provide a way to express strings containing a single backslash (\) #set($backslash=\) results in a lexical error during template parsing. #set($backslash=\\) results in $backslash being assigned a string containing two backslashes (\\) It appears the only workaround available now is to construct a variable containing just a single backslash with this idiom: #set($twobackslashes=\\) #set($backslash=$twobackslashes.substring(0,1)) Even if this can't be fixed in the parser, the documentation should be updated to define a preferred idiom for obtaining a string containing a single backslash. jon. note: this issue partially duplicates a comment by Guido Deinhammer on issue #454 regarding other escaping issues. I have raised a separate issue, so that this one can be addressed separately, if desired. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]