mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-11-04 09:39:43 +01:00 
			
		
		
		
	SynEdit: Fixed crash with certain chars. Issue #0022926. Certain chars were handled as "combining Marks". Introduced in rev 38669 #069b89f42f
git-svn-id: trunk@38827 -
This commit is contained in:
		
							parent
							
								
									1b807141b9
								
							
						
					
					
						commit
						4ee95d2f5b
					
				@ -826,32 +826,23 @@ begin
 | 
			
		||||
        PWidths^ := 0;
 | 
			
		||||
      #$CC:
 | 
			
		||||
        if ((Line+1)^ in [#$80..#$FF]) and (i>0)
 | 
			
		||||
        then PWidths^ := 0  // Combining Diacritical Marks (belongs to previos char)
 | 
			
		||||
        then PWidths^ := 0  // Combining Diacritical Marks (belongs to previos char) 0300-036F
 | 
			
		||||
        else PWidths^ := 1;
 | 
			
		||||
      #$CD:
 | 
			
		||||
        if ((Line+1)^ in [#$00..#$AF]) and (i>0)
 | 
			
		||||
        then PWidths^ := 0  // Combining Diacritical Marks
 | 
			
		||||
        else PWidths^ := 1;
 | 
			
		||||
      #$E1:
 | 
			
		||||
        if (   (((Line+1)^ = #$B7) and ((Line+2)^ in [#$80..#$FF]))
 | 
			
		||||
            or  ((Line+1)^ in [#$B8..#$B9])
 | 
			
		||||
            or (((Line+1)^ = #$BA) and ((Line+2)^ in [#$80..#$BF]))
 | 
			
		||||
           ) and (i>0)
 | 
			
		||||
        then PWidths^ := 0  // Combining Diacritical Marks Supplement
 | 
			
		||||
        if (((Line+1)^ = #$B7) and ((Line+2)^ in [#$80..#$BF])) and (i>0)
 | 
			
		||||
        then PWidths^ := 0  // Combining Diacritical Marks Supplement 1DC0-1DFF
 | 
			
		||||
        else PWidths^ := 1;
 | 
			
		||||
      #$E2:
 | 
			
		||||
        if (   (((Line+1)^ = #$83) and ((Line+2)^ in [#$90..#$FF]))
 | 
			
		||||
            or  ((Line+1)^ in [#$84..#$86])
 | 
			
		||||
            or (((Line+1)^ = #$87) and ((Line+2)^ in [#$80..#$8F]))
 | 
			
		||||
           ) and (i>0)
 | 
			
		||||
        then PWidths^ := 0  // Combining Diacritical Marks for Symbols
 | 
			
		||||
        if (((Line+1)^ = #$83) and ((Line+2)^ in [#$90..#$FF])) and (i>0)
 | 
			
		||||
        then PWidths^ := 0  // Combining Diacritical Marks for Symbols 20D0-20FF
 | 
			
		||||
        else PWidths^ := 1;
 | 
			
		||||
      #$EF:
 | 
			
		||||
        if (   (((Line+1)^ = #$B8) and ((Line+2)^ in [#$A0..#$FF]))
 | 
			
		||||
            or  ((Line+1)^ in [#$B9..#$BB])
 | 
			
		||||
            or (((Line+1)^ = #$BC) and ((Line+2)^ in [#$80..#$9F]))
 | 
			
		||||
           ) and (i>0)
 | 
			
		||||
        then PWidths^ := 0  // Combining half Marks
 | 
			
		||||
        if (((Line+1)^ = #$B8) and ((Line+2)^ in [#$A0..#$AF])) and (i>0)
 | 
			
		||||
        then PWidths^ := 0  // Combining half Marks FE20-FE2F
 | 
			
		||||
        else PWidths^ := 1;
 | 
			
		||||
      else
 | 
			
		||||
        PWidths^ := 1;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user