pike.git / src / builtin.cmod

version» Context lines:

pike.git/src/builtin.cmod:1:   /* -*- c -*-   || This file is part of Pike. For copyright information see COPYRIGHT.   || Pike is distributed under GPL, LGPL and MPL. See the file COPYING   || for more information. - || $Id: builtin.cmod,v 1.157 2004/04/29 23:54:17 nilsson Exp $ + || $Id: builtin.cmod,v 1.158 2004/04/30 20:54:55 nilsson Exp $   */      #include "global.h"   #include "interpret.h"   #include "svalue.h"   #include "pike_macros.h"   #include "object.h"   #include "program.h"   #include "array.h"   #include "pike_error.h"
pike.git/src/builtin.cmod:2002:    static int find_longest_prefix(char *str,    ptrdiff_t len,    int size_shift,    struct tupel *v,    INT32 a,    INT32 b)    {    INT32 c,match=-1;    ptrdiff_t tmp;    +  check_c_stack(2048); +     while(a<b)    {    c=(a+b)/2;       tmp=generic_quick_binary_strcmp(v[c].ind->str,    v[c].ind->len,    v[c].ind->size_shift,    str,    MINIMUM(len,v[c].ind->len),    size_shift);
pike.git/src/builtin.cmod:2069:    */    PIKEFUN string `()(string str)    {    struct string_builder ret;    ptrdiff_t length = str->len;    ptrdiff_t s;    int *set_start = THIS->set_start;    int *set_end = THIS->set_end;    struct tupel *v = THIS->v;    int num = THIS->sz; +  ONERROR uwp;       if (!num) {    add_ref(str);    RETURN str;    }       init_string_builder(&ret,str->size_shift); -  +  SET_ONERROR(uwp, free_string_builder, &ret);       for(s=0;length > 0;)    {    INT32 a,b;    ptrdiff_t ch;       ch = index_shared_string(str, s);    if((ch >= 0) && (ch < 256))    b = set_end[ch];    else
pike.git/src/builtin.cmod:2116:    string_builder_shared_strcat(&ret, v[a].val);    continue;    }    }    string_builder_putchar(&ret,    DO_NOT_WARN((INT32)ch));    s++;    length--;    }    +  UNSET_ONERROR(uwp); +     RETURN finish_string_builder(&ret);    }       /*! @decl array(string) _encode()    */    PIKEFUN array(string) _encode()    {    size_t i;    for (i=0; i < THIS->sz; i++) {    ref_push_string(THIS->v[i].ind);