if (index + 1 < len && pattern.charAt(index + 1) == '\u00a4') { buf.append(syms.getInternationalCurrencySymbol(), NumberFormat.Field.CURRENCY); index++; } else buf.append(syms.getCurrencySymbol(), NumberFormat.Field.CURRENCY);
buf.append(c);
  private int scanFix (String pattern, int index, FormatBuffer buf,			     String patChars, DecimalFormatSymbols syms,			     boolean is_suffix)  {		int len = pattern.length();    boolean quoteStarted = false;    buf.clear();    		boolean multiplierSet = false;    while (index < len)      {			char c = pattern.charAt(index);	if (quoteStarted)	  {	    if (c == '\'')	      quoteStarted = false;	    else				buf.append(c);	    index++;	    continue;	  }	if (c == '\'' && index + 1 < len	    && pattern.charAt(index + 1) == '\'')	  {	    buf.append(c);	    index++;	  }	else if (c == '\'')	  {	    quoteStarted = true;	  }	else if (c == '\u00a4')	  {	    if (index + 1 < len && pattern.charAt(index + 1) == '\u00a4')	      {		buf.append(syms.getInternationalCurrencySymbol(), NumberFormat.Field.CURRENCY);		index++;	      }	    else	      buf.append(syms.getCurrencySymbol(), NumberFormat.Field.CURRENCY);	  }	else if (c == syms.getPercent())	  {				if (multiplierSet)	      throw new IllegalArgumentException ("multiplier already set " +						  "- index: " + index);				multiplierSet = true;				multiplier = 100;	    buf.append(c, NumberFormat.Field.PERCENT);	  }	else if (c == syms.getPerMill())	  {				if (multiplierSet)	      throw new IllegalArgumentException ("multiplier already set " +						  "- index: " + index);				multiplierSet = true;				multiplier = 1000;	    buf.append(c, NumberFormat.Field.PERMILLE);	  }	else if (patChars.indexOf(c) != -1)	  {				// This is a pattern character.				break;	  }	else				buf.append(c);	index++;		}    if (quoteStarted)      throw new IllegalArgumentException ("pattern is lacking a closing quote");		return index;	}