return 0;
{   Token tokens = tokenMarker.markTokens(lineSegment,line);  int x = 0; int index = 0; Toolkit toolkit = painter.getToolkit(); Font defaultFont = painter.getFont(); SyntaxStyle[] styles = painter.getStyles();  for(;;) { byte id = tokens.id; if(id == Token.END) { returnValue = x; break; }  if(id == Token.NULL) fm = toolkit.getFontMetrics(defaultFont); else { fm = toolkit.getFontMetrics(styles[id] .getStyledFont(defaultFont)); }  int length = tokens.length;  if(offset < index + length) { lineSegment.count = offset - index; returnValue = x + Utilities.getTabbedTextWidth( lineSegment,fm,x,painter,segmentOffset + index); break; } else { lineSegment.count = length; x += Utilities.getTabbedTextWidth( lineSegment,fm,x,painter, lineSegment.offset + index); lineSegment.offset += length; index += length; } tokens = tokens.next; } }  lineSegment.offset = segmentOffset; lineSegment.count = segmentCount;  return returnValue + textArea.getHorizontalOffset();
	public int offsetToX(int line, int offset)	{		TokenMarker tokenMarker = getTokenMarker();		/* Use painter's cached info for speed */		TextAreaPainter painter = textArea.getPainter();		FontMetrics fm = painter.getFontMetrics();		Segment currentLine = painter.currentLine;		if(painter.currentLineIndex != line)		{			getLineText(line,currentLine);			painter.currentLineIndex = line;		}		if(tokenMarker == null)		{			int oldCount = currentLine.count;			currentLine.count = offset;			int x = Utilities.getTabbedTextWidth(currentLine,				fm,0,painter,0);			currentLine.count = oldCount;			return x + textArea.getHorizontalOffset();		}		else			return 0;	}