From cabe033cc592f18f18762e78a9a15ddddfca0ee9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Fri, 19 Mar 1999 17:41:45 +0100 Subject: [PATCH] Fixed a few bugs... Rev: src/builtin_functions.c:1.157 --- src/builtin_functions.c | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/builtin_functions.c b/src/builtin_functions.c index 943ede14ec..2e9f9fb521 100644 --- a/src/builtin_functions.c +++ b/src/builtin_functions.c @@ -5,7 +5,7 @@ \*/ /**/ #include "global.h" -RCSID("$Id: builtin_functions.c,v 1.156 1999/03/19 11:40:14 hubbe Exp $"); +RCSID("$Id: builtin_functions.c,v 1.157 1999/03/19 16:41:45 grubba Exp $"); #include "interpret.h" #include "svalue.h" #include "pike_macros.h" @@ -156,13 +156,14 @@ void f_ctime(INT32 args) void f_lower_case(INT32 args) { INT32 i; + struct pike_string *orig; struct pike_string *ret; - get_all_args("lower_case",args,"%s",&ret); + get_all_args("lower_case",args,"%s",&orig); - ret=begin_shared_string(sp[-args].u.string->len); - MEMCPY(ret->str, sp[-args].u.string->str,sp[-args].u.string->len); + ret = begin_shared_string(orig->len); + MEMCPY(ret->str, orig->str, orig->len); - for (i = sp[-args].u.string->len-1; i>=0; i--) + for (i = orig->len-1; i>=0; i--) if (isupper(EXTRACT_UCHAR( ret->str + i))) ret->str[i] = tolower(EXTRACT_UCHAR(ret->str+i)); @@ -174,13 +175,14 @@ void f_lower_case(INT32 args) void f_upper_case(INT32 args) { INT32 i; + struct pike_string *orig; struct pike_string *ret; - get_all_args("upper_case",args,"%s",&ret); + get_all_args("upper_case",args,"%s",&orig); - ret=begin_shared_string(sp[-args].u.string->len); - MEMCPY(ret->str, sp[-args].u.string->str,sp[-args].u.string->len); + ret=begin_shared_string(orig->len); + MEMCPY(ret->str, orig->str, orig->len); - for (i = sp[-args].u.string->len-1; i>=0; i--) + for (i = orig->len-1; i>=0; i--) if (islower(EXTRACT_UCHAR(ret->str+i))) ret->str[i] = toupper(EXTRACT_UCHAR(ret->str+i)); @@ -195,11 +197,12 @@ void f_random(INT32 args) if(i <= 0) { - sp[-args].u.integer = 0; + i = 0; }else{ - sp[-args].u.integer = my_rand() % i; + i = my_rand() % i; } - pop_n_elems(args-1); + pop_n_elems(args); + push_int(i); } void f_random_seed(INT32 args) -- GitLab