SkinStyleSheetParserUtils.trimQuotes trims mis-matched quotes
-------------------------------------------------------------

                 Key: TRINIDAD-1972
                 URL: https://issues.apache.org/jira/browse/TRINIDAD-1972
             Project: MyFaces Trinidad
          Issue Type: Bug
          Components: Skinning
            Reporter: Jeanne Waldman
            Priority: Minor


SkinStyleSheetParserUtils.trimQuotes trims mis-matched quotes, though 
mismatched quotes should not be allowed. Here is the code.
  public static String trimQuotes(String in)
  {
    int length = in.length();
    if (length <= 1)
      return in;
 
    // strip off the starting/ending quotes if there are any
    char firstChar = in.charAt(0);
    int firstCharIndex = 0;
    if ((firstChar == '\'') || (firstChar == '"'))
      firstCharIndex = 1;

    char lastChar = in.charAt(length-1);
    if ((lastChar == '\'') || (lastChar == '"'))
      length--;

    return in.substring(firstCharIndex, length);
  }

We can change it to be more strict, but log a warning if they had mismatched 
quotes so they will know and they can fix them.
  public static String trimQuotesStrict(String in)
  {
    if ( in == null )
      return in;

    in = in.trim();
    boolean startsWithDoubleQuote = in.startsWith( "\"" );
    boolean startsWithSingleQuote = in.startsWith( "\'" );
    boolean endsWithDoubleQuote = in.endsWith( "\"" );
    boolean endsWithSingleQuote = in.endsWith( "\'" );
    
    if (( startsWithDoubleQuote && endsWithSingleQuote ) ||
       ( startsWithSingleQuote && endsWithDoubleQuote ))
    {
      if (_LOG.isWarning())
        _LOG.warning("Skin parsing: fix mismatched quotes in " + in);
    }
                                                          
    if ( startsWithDoubleQuote && endsWithDoubleQuote )
      return in.substring( 1, in.length() - 1 );
    if ( startsWithSingleQuote && endsWithSingleQuote )
      return in.substring( 1, in.length() - 1 );
    
    return in;
  } 
  

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to