pike.git / src / modules / Image / font.c

version» Context lines:

pike.git/src/modules/Image/font.c:1: - /* $Id: font.c,v 1.54 1999/09/14 13:55:08 mirar Exp $ */ + /* $Id: font.c,v 1.55 1999/09/25 19:54:48 grubba Exp $ */   #include "global.h"      #define SPACE_CHAR 'i'      extern unsigned char * image_default_font;   #define IMAGE_DEFAULT_FONT_SIZE 30596      /*   **! module Image   **! note - **! $Id: font.c,v 1.54 1999/09/14 13:55:08 mirar Exp $ + **! $Id: font.c,v 1.55 1999/09/25 19:54:48 grubba Exp $   **! class Font   **!   **! note   **! Short technical documentation on a font file:   **! This object adds the text-drawing and -creation   **! capabilities of the <ref>Image</ref> module.   **!   **! For simple usage, see   **! <ref>write</ref> and <ref>load</ref>.   **!
pike.git/src/modules/Image/font.c:334:   void font_load(INT32 args);      void font_create(INT32 args)   {    font_load(args);    pop_stack();   }      void font_load(INT32 args)   { -  int fd; +  int fd = -1;    size_t size;       if (THIS)    {    free_font_struct(THIS);    THIS=NULL;    }       if (!args)    {
pike.git/src/modules/Image/font.c:360:       if (sp[-args].type!=T_STRING)    error("font->read: illegal or wrong number of arguments\n");       do    {   #ifdef FONT_DEBUG    fprintf(stderr,"FONT open '%s'\n",sp[-args].u.string->str);   #endif    fd = fd_open(sp[-args].u.string->str,fd_RDONLY,0); +  /* FIXME: check_threads_etc(); ? +  */    } while(fd < 0 && errno == EINTR);       if (fd >= 0)    {    struct font *new_font;       size = (size_t) file_size(fd);    if (size > 0)    {    new_font=THIS=(struct font *)xalloc(sizeof(struct font));
pike.git/src/modules/Image/font.c:466:    THIS->charinfo[i].pixels = ch->data;    }    else /* illegal <tm> offset or illegal align */    {   #ifdef FONT_DEBUG    fprintf(stderr,"FONT failed on char %02xh %d '%c'\n",    i,i,i);   #endif    free_font_struct(new_font);    THIS=NULL; +  if (fd >= 0) { +  fd_close(fd); +  }    pop_n_elems(args);    push_int(0);    return;    }       }       if (!args) goto done;       fd_close(fd);