pike.git / src / builtin_functions.c

version» Context lines:

pike.git/src/builtin_functions.c:202:      /*! @decl __deprecated__ int hash_7_4(string s)    *! @decl __deprecated__ int hash_7_4(string s, int max)    *!    *! @deprecated 7.4::hash    *!    *! @seealso    *! @[7.4::hash()]    */    - /*! @decl __deprecated__ int hash_7_0(string s) -  *! @decl __deprecated__ int hash_7_0(string s, int max) -  *! -  *! @deprecated 7.0::hash -  *! -  *! @seealso -  *! @[7.0::hash()] -  */ -  +    /*! @namespace 7.4::    */      #define MK_HASHMEM(NAME, TYPE) ATTRIBUTE((const)) \    static INLINE size_t NAME(const TYPE *str, ptrdiff_t len, ptrdiff_t maxn) \    { \    size_t ret,c; \    \    ret = len*92873743; \    \
pike.git/src/builtin_functions.c:283:       i%=(unsigned INT32)Pike_sp[1-args].u.integer;    }    pop_n_elems(args);    push_int64(i);   }      /*! @endnamespace    */    - /*! @namespace 7.0:: -  */ -  +    ATTRIBUTE((const)) static INLINE size_t hashstr(const unsigned char *str, ptrdiff_t maxn)   {    size_t ret,c;       if(!(ret=str++[0]))    return ret;    for(; maxn>=0; maxn--)    {    c=str++[0];    if(!c) break;    ret ^= ( ret << 4 ) + c ;    ret &= 0x7fffffff;    }       return ret;   }    - /*! @decl int hash(string s) -  *! @decl int hash(string s, int max) + /*! @decl int hash_7_0(string s) +  *! @decl int hash_7_0(string s, int max)    *!    *! Return an integer derived from the string @[s]. The same string    *! always hashes to the same value, also between processes.    *!    *! If @[max] is given, the result will be >= 0 and < @[max],    *! otherwise the result will be >= 0 and <= 0x7fffffff.    *!    *! @note -  *! This function is provided for backward compatibility reasons. +  *! This function is provided for backward compatibility with +  *! code written for Pike up and including version 7.0.    *!    *! This function is not NUL-safe, and is byte-order dependant.    *!    *! @seealso -  *! @[predef::hash()], @[7.4::hash()] +  *! @[hash()], @[7.4::hash()]    */   static void f_hash_7_0( INT32 args )   {    struct pike_string *s = Pike_sp[-args].u.string;    unsigned int i;    if(!args)    SIMPLE_TOO_FEW_ARGS_ERROR("7.0::hash",1);    if(TYPEOF(Pike_sp[-args]) != T_STRING)    SIMPLE_BAD_ARG_ERROR("7.0::hash", 1, "string");   
pike.git/src/builtin_functions.c:351:       if(!Pike_sp[1-args].u.integer)    PIKE_ERROR("7.0::hash", "Modulo by zero.\n", Pike_sp, args);       i%=(unsigned INT32)Pike_sp[1-args].u.integer;    }    pop_n_elems(args);    push_int( i );   }    - /*! @endnamespace -  */ -  +    /*! @decl int hash(string s)    *! @decl int hash(string s, int max)    *!    *! Return an integer derived from the string @[s]. The same string    *! always hashes to the same value, also between processes,    *! architectures, and Pike versions (see compatibility notes below,    *! though).    *!    *! If @[max] is given, the result will be >= 0 and < @[max],    *! otherwise the result will be >= 0 and <= 0x7fffffff.
pike.git/src/builtin_functions.c:378:    *! The difference only affects wide strings.    *!    *! The hash algorithm was also changed in Pike 7.1. If you want a hash    *! that is compatible with Pike 7.0 and earlier, use @[7.0::hash()].    *!    *! @note    *! This hash function differs from the one provided by @[hash_value()],    *! in that @[hash_value()] returns a process specific value.    *!    *! @seealso -  *! @[7.0::hash()], @[7.4::hash()], @[hash_value] +  *! @[hash_7_0()], @[7.4::hash()], @[hash_value]    */   PMOD_EXPORT void f_hash(INT32 args)   {    size_t i = 0;    struct pike_string *s;       if(!args)    SIMPLE_TOO_FEW_ARGS_ERROR("hash",1);       if(TYPEOF(Pike_sp[-args]) != T_STRING)
pike.git/src/builtin_functions.c:9819:      /* function(string,string:int(0..1))|function(string,string*:array(string)) */    ADD_EFUN("glob",f_glob,    tOr(tFunc(tOr(tStr,tArr(tStr)) tStr,tInt01),tFunc(tOr(tStr,tArr(tStr)) tSetvar(1,tArr(tStr)),tVar(1))),    OPT_TRY_OPTIMIZE);      /* function(string,int|void:int) */    ADD_EFUN("hash",f_hash,tFunc(tStr tOr(tInt,tVoid),tInt),OPT_TRY_OPTIMIZE);       ADD_EFUN("hash_7_0",f_hash_7_0, -  tDeprecated(tFunc(tStr tOr(tInt,tVoid),tInt)),OPT_TRY_OPTIMIZE); +  tFunc(tStr tOr(tInt,tVoid),tInt),OPT_TRY_OPTIMIZE);       ADD_EFUN("hash_7_4",f_hash_7_4,    tDeprecated(tFunc(tStr tOr(tInt,tVoid),tInt)),OPT_TRY_OPTIMIZE);       ADD_EFUN("hash_value",f_hash_value,tFunc(tMix,tInt),OPT_TRY_OPTIMIZE);       ADD_EFUN2("indices",f_indices,    tOr3(tFunc(tArray,tArr(tIntPos)),    tFunc(tOr3(tMap(tSetvar(1,tMix),tMix),    tSet(tSetvar(1,tMix)),