Mercurial > hg > xemacs-beta
comparison src/fns.c @ 76:c0c698873ce1 r20-0b33
Import from CVS: tag r20-0b33
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:05:10 +0200 |
parents | 131b0175ea99 |
children | a145efe76779 |
comparison
equal
deleted
inserted
replaced
75:a4e0195b387b | 76:c0c698873ce1 |
---|---|
3041 ARRAY is a vector, bit vector, or string. | 3041 ARRAY is a vector, bit vector, or string. |
3042 */ | 3042 */ |
3043 (array, item)) | 3043 (array, item)) |
3044 { | 3044 { |
3045 retry: | 3045 retry: |
3046 if (VECTORP (array)) | 3046 if (STRINGP (array)) |
3047 { | |
3048 Charcount size; | |
3049 Charcount i; | |
3050 Emchar charval; | |
3051 struct Lisp_String *s; | |
3052 CHECK_CHAR_COERCE_INT (item); | |
3053 CHECK_IMPURE (array); | |
3054 charval = XCHAR (item); | |
3055 s = XSTRING (array); | |
3056 size = string_char_length (s); | |
3057 for (i = 0; i < size; i++) | |
3058 set_string_char (s, i, charval); | |
3059 bump_string_modiff (array); | |
3060 } | |
3061 else if (VECTORP (array)) | |
3047 { | 3062 { |
3048 Lisp_Object *p; | 3063 Lisp_Object *p; |
3049 int size; | 3064 int size; |
3050 int indecks; | 3065 int i; |
3051 CHECK_IMPURE (array); | 3066 CHECK_IMPURE (array); |
3052 size = vector_length (XVECTOR (array)); | 3067 size = vector_length (XVECTOR (array)); |
3053 p = vector_data (XVECTOR (array)); | 3068 p = vector_data (XVECTOR (array)); |
3054 for (indecks = 0; indecks < size; indecks++) | 3069 for (i = 0; i < size; i++) |
3055 p[indecks] = item; | 3070 p[i] = item; |
3056 } | 3071 } |
3057 else if (VECTORP (array)) | 3072 else if (BIT_VECTORP (array)) |
3058 { | 3073 { |
3059 struct Lisp_Bit_Vector *v; | 3074 struct Lisp_Bit_Vector *v; |
3060 int size; | 3075 int size; |
3061 int indecks; | 3076 int i; |
3062 | |
3063 CHECK_BIT (item); | 3077 CHECK_BIT (item); |
3064 CHECK_IMPURE (array); | 3078 CHECK_IMPURE (array); |
3065 v = XBIT_VECTOR (array); | 3079 v = XBIT_VECTOR (array); |
3066 size = bit_vector_length (v); | 3080 size = bit_vector_length (v); |
3067 for (indecks = 0; indecks < size; indecks++) | 3081 for (i = 0; i < size; i++) |
3068 set_bit_vector_bit (v, indecks, XINT (item)); | 3082 set_bit_vector_bit (v, i, XINT (item)); |
3069 } | |
3070 else if (STRINGP (array)) | |
3071 { | |
3072 Charcount size; | |
3073 Charcount indecks; | |
3074 Emchar charval; | |
3075 CHECK_CHAR_COERCE_INT (item); | |
3076 CHECK_IMPURE (array); | |
3077 charval = XCHAR (item); | |
3078 size = string_char_length (XSTRING (array)); | |
3079 for (indecks = 0; indecks < size; indecks++) | |
3080 set_string_char (XSTRING (array), indecks, charval); | |
3081 bump_string_modiff (array); | |
3082 } | 3083 } |
3083 else | 3084 else |
3084 { | 3085 { |
3085 array = wrong_type_argument (Qarrayp, array); | 3086 array = wrong_type_argument (Qarrayp, array); |
3086 goto retry; | 3087 goto retry; |