Roxen.git / server / modules / graphics / graphic_text.pike

version» Context lines:

Roxen.git/server/modules/graphics/graphic_text.pike:1: - string cvs_version="$Id: graphic_text.pike,v 1.15 1996/12/10 04:13:32 per Exp $"; + string cvs_version="$Id: graphic_text.pike,v 1.16 1996/12/10 04:19:52 per Exp $";   #include <module.h>   inherit "module";   inherit "roxenlib";         array register_module()   {    return ({ MODULE_LOCATION | MODULE_PARSER,    "Graphics text",    "Makes a few new tags, which render text to gifs "
Roxen.git/server/modules/graphics/graphic_text.pike:389:    background->setcolor(@bgcolor);    background = background->rotate((float)args->rotate);    }       if(args->crop) background = background->autocrop();       return background;   }       + int number=time(1), _start=time(1); +    array(int)|string write_text(int _args, string text, int size,    object id)   {    object img;    mapping args = cached_args[_args];       if(!args) return 0;       text = replace(text, ({ "&lt;", "&gt;", "&amp;" }), ({ "<", ">", "&" }));       // Check the cache first..    if(!id /*|| (!id->pragma["no-cache"])*/) -  if(mixed data = cache_lookup("graphical text:"+_args, text)) +  if(mixed data = cache_lookup("gtext:"+(_args-_start), text))    {    if(size) return data[1];    return data[0];    }       // Nothing found in the cache. Generate a new image.       data = cache_lookup("fonts:fonts",    args->font+args->justift+":"+    args->xpad+":"+args->ypad);
Roxen.git/server/modules/graphics/graphic_text.pike:437:    int q = (int)args->quant || (args->background?256:16);    img = img->map_closest(img->select_colors(q-1)+({parse_color(args->bg)}));    if(args->fs)    data=({ img->togif_fs(@(args->notrans?({}):parse_color(args->bg))),    ({img->xsize(),img->ysize()})});    else    data=({ img->togif(@(args->notrans?({}):parse_color(args->bg))),    ({img->xsize(),img->ysize()})});    img=0;    -  cache_set("graphical text:"+_args, text, data); +  cache_set("gtext:"+(_args-_start), text, data);    if(size) return data[1];    return data[0];   }         mapping find_file(string f, object rid)   {    string id;    sscanf(f,"%d/%s", id, f);    return http_string_answer(write_text((int)id,f,0,rid), "image/gif");
Roxen.git/server/modules/graphics/graphic_text.pike:470:    case ',':    case '!':    res += in[i..i];    break;    default:    res += sprintf("%%%02x", in[i]);    }    return res;   }    - int number=time(1); +       int find_or_insert(mapping find)   {    array a = indices(cached_args);    array b = values(cached_args);    int i;    for(i=0; i<sizeof(a); i++)    if(equal(find, b[i])) return a[i];    cached_args[number]=find;    return number++;