195 |
|
|
196 |
case t_string: |
case t_string: |
197 |
return(x); |
return(x); |
198 |
|
default: |
199 |
|
break; |
200 |
} |
} |
201 |
FEerror("~S cannot be coerced to a string.", 1, x); |
FEerror("~S cannot be coerced to a string.", 1, x); |
202 |
|
return(Cnil); |
203 |
} |
} |
204 |
|
|
205 |
@(defun char (s i) |
@(defun char (s i) |
213 |
@(return `code_char(s->ust.ust_self[j])`) |
@(return `code_char(s->ust.ust_self[j])`) |
214 |
@) |
@) |
215 |
|
|
216 |
|
void |
217 |
siLchar_set() |
siLchar_set() |
218 |
{ |
{ |
219 |
int j; |
int j; |
229 |
vs_base += 2; |
vs_base += 2; |
230 |
} |
} |
231 |
|
|
232 |
|
void |
233 |
get_string_start_end(string, start, end, ps, pe) |
get_string_start_end(string, start, end, ps, pe) |
234 |
object string, start, end; |
object string, start, end; |
235 |
int *ps, *pe; |
int *ps, *pe; |
338 |
@(return `string_sign>=0 ? make_fixnum(s1) : Cnil`) |
@(return `string_sign>=0 ? make_fixnum(s1) : Cnil`) |
339 |
@) |
@) |
340 |
|
|
341 |
Lstring_l() { string_sign = 1; string_boundary = 1; Lstring_cmp(); } |
void Lstring_l() { string_sign = 1; string_boundary = 1; Lstring_cmp(); } |
342 |
Lstring_g() { string_sign = -1; string_boundary = 1; Lstring_cmp(); } |
void Lstring_g() { string_sign = -1; string_boundary = 1; Lstring_cmp(); } |
343 |
Lstring_le() { string_sign = 1; string_boundary = 0; Lstring_cmp(); } |
void Lstring_le() { string_sign = 1; string_boundary = 0; Lstring_cmp(); } |
344 |
Lstring_ge() { string_sign = -1; string_boundary = 0; Lstring_cmp(); } |
void Lstring_ge() { string_sign = -1; string_boundary = 0; Lstring_cmp(); } |
345 |
Lstring_neq() { string_sign = 0; string_boundary = 1; Lstring_cmp(); } |
void Lstring_neq() { string_sign = 0; string_boundary = 1; Lstring_cmp(); } |
346 |
|
|
347 |
@(defun string_compare (string1 string2 |
@(defun string_compare (string1 string2 |
348 |
&key start1 end1 start2 end2) |
&key start1 end1 start2 end2) |
381 |
@(return `string_sign>=0 ? make_fixnum(s1) : Cnil`) |
@(return `string_sign>=0 ? make_fixnum(s1) : Cnil`) |
382 |
@) |
@) |
383 |
|
|
384 |
Lstring_lessp() { string_sign = 1; string_boundary = 1; Lstring_compare(); } |
void Lstring_lessp() { string_sign = 1; string_boundary = 1; Lstring_compare(); } |
385 |
Lstring_greaterp() { string_sign = -1; string_boundary = 1; Lstring_compare(); } |
void Lstring_greaterp() { string_sign = -1; string_boundary = 1; Lstring_compare(); } |
386 |
Lstring_not_greaterp(){ string_sign = 1; string_boundary = 0; Lstring_compare(); } |
void Lstring_not_greaterp(){ string_sign = 1; string_boundary = 0; Lstring_compare(); } |
387 |
Lstring_not_lessp() { string_sign = -1; string_boundary = 0; Lstring_compare(); } |
void Lstring_not_lessp() { string_sign = -1; string_boundary = 0; Lstring_compare(); } |
388 |
Lstring_not_equal() { string_sign = 0; string_boundary = 1; Lstring_compare(); } |
void Lstring_not_equal() { string_sign = 0; string_boundary = 1; Lstring_compare(); } |
389 |
|
|
390 |
|
|
391 |
@(defun make_string (size |
@(defun make_string (size |
451 |
|
|
452 |
default: |
default: |
453 |
FEerror("~S is not a sequence.", 1, char_bag); |
FEerror("~S is not a sequence.", 1, char_bag); |
454 |
|
return(FALSE); |
455 |
} |
} |
456 |
} |
} |
457 |
|
|
458 |
|
void Lstring_trim0(); |
459 |
Lstring_trim() { left_trim = right_trim = TRUE; Lstring_trim0(); } |
void Lstring_trim() { left_trim = right_trim = TRUE; Lstring_trim0(); } |
460 |
Lstring_left_trim() { left_trim = TRUE; right_trim = FALSE; Lstring_trim0(); } |
void Lstring_left_trim() { left_trim = TRUE; right_trim = FALSE; Lstring_trim0(); } |
461 |
Lstring_right_trim() { left_trim = FALSE; right_trim = TRUE; Lstring_trim0();} |
void Lstring_right_trim() { left_trim = FALSE; right_trim = TRUE; Lstring_trim0();} |
462 |
|
|
463 |
@(defun string_trim0 (char_bag strng &aux res) |
@(defun string_trim0 (char_bag strng &aux res) |
464 |
int i, j, k; |
int i, j, k; |
484 |
@(return res) |
@(return res) |
485 |
@) |
@) |
486 |
|
|
487 |
static char_upcase(c, bp) |
static int char_upcase(c, bp) |
488 |
int c, *bp; |
int c, *bp; |
489 |
{ |
{ |
490 |
if (isLower(c)) |
if (isLower(c)) |
493 |
return(c); |
return(c); |
494 |
} |
} |
495 |
|
|
496 |
static char_downcase(c, bp) |
static int char_downcase(c, bp) |
497 |
int c, *bp; |
int c, *bp; |
498 |
{ |
{ |
499 |
if (isUpper(c)) |
if (isUpper(c)) |
502 |
return(c); |
return(c); |
503 |
} |
} |
504 |
|
|
505 |
static char_capitalize(c, bp) |
static int char_capitalize(c, bp) |
506 |
int c, *bp; |
int c, *bp; |
507 |
{ |
{ |
508 |
if (isLower(c)) { |
if (isLower(c)) { |
532 |
@(return conv) |
@(return conv) |
533 |
@) |
@) |
534 |
|
|
535 |
Lstring_upcase() { casefun = char_upcase; Lstring_case(); } |
void Lstring_upcase() { casefun = char_upcase; Lstring_case(); } |
536 |
Lstring_downcase() { casefun = char_downcase; Lstring_case(); } |
void Lstring_downcase() { casefun = char_downcase; Lstring_case(); } |
537 |
Lstring_capitalize() { casefun = char_capitalize; Lstring_case(); } |
void Lstring_capitalize() { casefun = char_capitalize; Lstring_case(); } |
538 |
|
|
539 |
|
|
540 |
@(defun nstring_case (strng &key start end) |
@(defun nstring_case (strng &key start end) |
550 |
@(return strng) |
@(return strng) |
551 |
@) |
@) |
552 |
|
|
553 |
Lnstring_upcase() { casefun = char_upcase; Lnstring_case(); } |
void Lnstring_upcase() { casefun = char_upcase; Lnstring_case(); } |
554 |
Lnstring_downcase() { casefun = char_downcase; Lnstring_case(); } |
void Lnstring_downcase() { casefun = char_downcase; Lnstring_case(); } |
555 |
Lnstring_capitalize() { casefun = char_capitalize; Lnstring_case(); } |
void Lnstring_capitalize() { casefun = char_capitalize; Lnstring_case(); } |
556 |
|
|
557 |
|
|
558 |
@(defun string (x) |
@(defun string (x) |
560 |
@(return `coerce_to_string(x)`) |
@(return `coerce_to_string(x)`) |
561 |
@) |
@) |
562 |
|
|
563 |
|
void |
564 |
siLstring_concatenate() |
siLstring_concatenate() |
565 |
{ |
{ |
566 |
int narg, i, l, m; |
int narg, i, l, m; |
584 |
END_NO_INTERRUPT;} |
END_NO_INTERRUPT;} |
585 |
} |
} |
586 |
|
|
587 |
|
void |
588 |
init_string_function() |
init_string_function() |
589 |
{ |
{ |
590 |
sKstart1 = make_keyword("START1"); |
sKstart1 = make_keyword("START1"); |