bug in handling of strings that run off the right edge of the margin
(in HTMLCheckerImpl) - thanks to Chuq von Rospach for reporting this
This commit is contained in:
		
							parent
							
								
									334fdb5c6b
								
							
						
					
					
						commit
						2db3b44e7e
					
				@ -7,7 +7,7 @@
 | 
			
		||||
 * WARRANTY OF ANY KIND, either express or implied. See the License for the specific
 | 
			
		||||
 * language governing rights and limitations under the License.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Original Code is the Venice Web Community System.
 | 
			
		||||
 * The Original Code is the Venice Web Communities System.
 | 
			
		||||
 * 
 | 
			
		||||
 * The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
 | 
			
		||||
 * for Silverwrist Design Studios.  Portions created by Eric J. Bowersox are
 | 
			
		||||
@ -404,7 +404,7 @@ class HTMLCheckerImpl implements HTMLChecker, HTMLCheckerBackend, RewriterServic
 | 
			
		||||
  private void emitFromStartOfTempBuffer(int nchars)
 | 
			
		||||
  {
 | 
			
		||||
    if (nchars<=0)
 | 
			
		||||
      return;
 | 
			
		||||
      return;  // can't emit less than 1 character!
 | 
			
		||||
 | 
			
		||||
    if ((config.getWordWrapLength()>0) && (nobreak_count<=0))
 | 
			
		||||
    { // we can output the line break anywhere in the subsequence...
 | 
			
		||||
@ -415,12 +415,16 @@ class HTMLCheckerImpl implements HTMLChecker, HTMLCheckerBackend, RewriterServic
 | 
			
		||||
	if (curlen>remaining_space)
 | 
			
		||||
	  curlen = remaining_space;
 | 
			
		||||
 | 
			
		||||
	// output those characters
 | 
			
		||||
	emitString(temp_buffer.substring(0,curlen),config.getOutputFilters(),true);
 | 
			
		||||
	temp_buffer.delete(0,curlen);
 | 
			
		||||
	nchars -= curlen;
 | 
			
		||||
	// EJB 10/2/2001 - only output if we have something to output (and there is space for it)
 | 
			
		||||
	if (curlen>0)
 | 
			
		||||
	{ // output those characters
 | 
			
		||||
	  emitString(temp_buffer.substring(0,curlen),config.getOutputFilters(),true);
 | 
			
		||||
	  temp_buffer.delete(0,curlen);
 | 
			
		||||
	  nchars -= curlen;
 | 
			
		||||
 | 
			
		||||
	if (columns==config.getWordWrapLength())
 | 
			
		||||
	} // end if
 | 
			
		||||
 | 
			
		||||
	if (columns>=config.getWordWrapLength())  // EJB 10/2/2001 - might be greater
 | 
			
		||||
	  emitLineBreak();  // and line break us to get to the next line
 | 
			
		||||
 | 
			
		||||
      } // end while
 | 
			
		||||
@ -750,7 +754,7 @@ class HTMLCheckerImpl implements HTMLChecker, HTMLCheckerBackend, RewriterServic
 | 
			
		||||
		i++;
 | 
			
		||||
		break;
 | 
			
		||||
		
 | 
			
		||||
	      case '\r':    // compress 1 or more \r's followe by optional \n to a single \n
 | 
			
		||||
	      case '\r':    // compress 1 or more \r's followed by optional \n to a single \n
 | 
			
		||||
		if (   (i==(str.length()-1))
 | 
			
		||||
		    || ((str.charAt(i+1)!='\r') && (str.charAt(i+1)!='\n')))
 | 
			
		||||
		  temp_buffer.append('\n');
 | 
			
		||||
@ -783,7 +787,7 @@ class HTMLCheckerImpl implements HTMLChecker, HTMLCheckerBackend, RewriterServic
 | 
			
		||||
		i++;
 | 
			
		||||
		break;
 | 
			
		||||
 | 
			
		||||
	      case '\\':  // backslash processing is complext - shift to ST_CHARS state to handle it
 | 
			
		||||
	      case '\\':  // backslash processing is complex - shift to ST_CHARS state to handle it
 | 
			
		||||
		doFlushWhitespace();
 | 
			
		||||
		state = ST_CHARS;
 | 
			
		||||
		break;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user