From 762f1f743718f9fc8c7a68e3bf848bb54a5119be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Sat, 11 Mar 2006 18:21:34 +0100 Subject: [PATCH] Added replace_many() replated functions and structs. Rev: src/builtin_functions.h:1.33 --- src/builtin_functions.h | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/src/builtin_functions.h b/src/builtin_functions.h index 14c12b4557..dfca443772 100644 --- a/src/builtin_functions.h +++ b/src/builtin_functions.h @@ -2,7 +2,7 @@ || 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_functions.h,v 1.32 2004/09/28 16:55:07 grubba Exp $ +|| $Id: builtin_functions.h,v 1.33 2006/03/11 17:21:34 grubba Exp $ */ #ifndef BUILTIN_EFUNS_H @@ -27,6 +27,25 @@ PMOD_EXPORT void debug_f_aggregate(INT32 args); #define f_aggregate(X) debug_f_aggregate(X) #endif +struct replace_many_tupel +{ + int prefix; + int is_prefix; + struct pike_string *ind; + struct pike_string *val; +}; + +struct replace_many_context +{ + struct replace_many_tupel *v; + struct pike_string *empty_repl; + int set_start[256]; + int set_end[256]; + int other_start; + int num; + int flags; +}; + PMOD_EXPORT void f_equal(INT32 args); PMOD_EXPORT void f_hash(INT32 args); PMOD_EXPORT void f_copy_value(INT32 args); @@ -61,8 +80,20 @@ PMOD_EXPORT void f_indices(INT32 args); PMOD_EXPORT void f_values(INT32 args); PMOD_EXPORT void f_next_object(INT32 args); PMOD_EXPORT void f_object_program(INT32 args); +int find_longest_prefix(char *str, + ptrdiff_t len, + int size_shift, + struct replace_many_tupel *v, + INT32 a, + INT32 b); +void free_replace_many_context(struct replace_many_context *ctx); +void compile_replace_many(struct replace_many_context *ctx, + struct array *from, + struct array *to, + int reference_strings); +struct pike_string *execute_replace_many(struct replace_many_context *ctx, + struct pike_string *str); PMOD_EXPORT void f_reverse(INT32 args); -struct tupel; PMOD_EXPORT void f_replace(INT32 args); PMOD_EXPORT void f_compile(INT32 args); PMOD_EXPORT void f_objectp(INT32 args); -- GitLab