Changeset 884 for libcaca


Ignore:
Timestamp:
Apr 25, 2006, 8:23:33 PM (15 years ago)
Author:
Jean-Yves Lamoureux
Message:
  • Improved ANSI format detection
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/cucul/import.c

    r883 r884  
    6767    if(!strcasecmp("", format))
    6868    {
     69        unsigned int i=0;
    6970        /* if 4 first letters are CACA */
    7071        if(size >= 4 &&
     
    7273            return import_caca(data, size);
    7374
    74         /* If 2 first characters are ESC[ (not reliable at all) */
    75         if(size >= 2 && buf[0] == 0x1b && buf[1] == '[')
    76             return import_ansi(data, size);
    77 
     75        /* If we find ESC[ tuple, we guess it's an ANSI file */
     76        while(i<size-1)
     77        {
     78            if((buf[i] == 0x1b) && (buf[i+1] == '['))
     79                return import_ansi(data, size);
     80            i++;
     81        }
     82       
    7883        /* Otherwise, import it as text */
    7984        return import_text(data, size);
     
    294299                break;
    295300            default:
    296                 /*printf("Unknow command %c (%c)\n", c, IS_ALPHA(c)?c:'.');*/
    297301                break;
    298302            }
     
    311315            else
    312316            {
     317
    313318                _cucul_putchar32(cv, x, y,_cucul_cp437_to_utf32(buffer[i]));
     319
    314320                x++;
    315321            }
     
    327333        }
    328334
    329         i += add; // add is tuple char count, then +[ +command
     335        i += add; // add is tuple char count
    330336        add = 0;
    331337    }
     
    444450        break;
    445451    default:
    446         /*   printf("Unknow option to 'm' %d (%c)\n", c, IS_ALPHA(c)?c:'.'); */
    447         break;
    448     }
    449 }
    450 
     452        break;
     453    }
     454}
     455
Note: See TracChangeset for help on using the changeset viewer.