Ignore:
Timestamp:
Apr 25, 2006, 6:28:00 PM (15 years ago)
Author:
Sam Hocevar
Message:
  • Got rid of _update_canvas_size().
File:
1 edited

Legend:

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

    r878 r879  
    197197
    198198#define IS_ALPHA(x) (x>='A' && x<='z')
    199 void _update_canvas_size(cucul_canvas_t *cv, int x, int y, int *max_x, int *max_y);
    200199unsigned char _get_ansi_command(unsigned char const *buffer, int size);
    201200int _parse_tuple(unsigned int *ret, unsigned char const *buffer, int size);
     
    210209    unsigned int count = 0;
    211210    unsigned int tuple[1024]; /* Should be enough. Will it be ? */
    212     int x = 0, y = 0, max_x = 80, max_y = 25;
     211    int x = 0, y = 0, width = 80, height = 25;
    213212    int save_x = 0, save_y = 0;
    214213    unsigned int j, add = 0;
     
    218217    bg = old_bg = CUCUL_COLOR_BLACK;
    219218
    220     cv = cucul_create_canvas(max_x, max_y);
     219    cv = cucul_create_canvas(width, height);
    221220
    222221    for(i = 0; i < size; i++)
     
    249248                    y = 0;
    250249                }
    251                 _update_canvas_size(cv, x, y, &max_x, &max_y);
    252250                break;
    253251            case 'A':
     
    257255                    y -= tuple[0];
    258256                if(y < 0) y = 0;
    259                 _update_canvas_size(cv, x, y, &max_x, &max_y);
    260257                break;
    261258            case 'B':
     
    264261                else
    265262                    y += tuple[0];
    266                 _update_canvas_size(cv, x, y, &max_x, &max_y);
    267263                break;
    268264            case 'C':
     
    271267                else
    272268                    x += tuple[0];
    273                 _update_canvas_size(cv, x, y, &max_x, &max_y);
    274269                break;
    275270            case 'D':
     
    279274                    x -= tuple[0];
    280275                if(x < 0) x = 0;
    281                 _update_canvas_size(cv, x, y, &max_x, &max_y);
    282276                break;
    283277            case 's':
     
    288282                x = save_x;
    289283                y = save_y;
    290                 _update_canvas_size(cv, x, y, &max_x, &max_y);
    291284                break;
    292285            case 'J':
     
    295288                    x = 0;
    296289                    y = 0;
    297                     _update_canvas_size(cv, x, y, &max_x, &max_y);
    298290                }
    299291                break;
     
    317309                x = 0;
    318310                y++;
    319                 _update_canvas_size(cv, x, y, &max_x, &max_y);
    320311            }
    321312            else if(buffer[i] == '\r')
     
    334325                    cucul_putchar(cv, x, y, '?');
    335326                x++;
    336                 _update_canvas_size(cv, x, y, &max_x, &max_y);
    337327            }
     328        }
     329
     330        if(x >= width || y >= height)
     331        {
     332            if(x >= width)
     333                width = x + 1;
     334
     335            if(y >= height)
     336                height = y + 1;
     337
     338            cucul_set_canvas_size(cv, width, height);
    338339        }
    339340
     
    470471}
    471472
    472 void _update_canvas_size(cucul_canvas_t *cv, int x, int y, int *max_x, int *max_y)
    473 {
    474     if(x > *max_x)
    475         *max_x = x;
    476 
    477     if(y > *max_y)
    478         *max_y = y;
    479 
    480     cucul_set_canvas_size(cv, *max_x, *max_y);
    481 }
    482 
Note: See TracChangeset for help on using the changeset viewer.