-/* Emacs -*-C-*-an't tell the language */
-
-/****************************************************************
-* *
-* Copyright (c) 1986 *
-* Massachusetts Institute of Technology *
-* *
-* This material was developed by the Scheme project at the *
-* Massachusetts Institute of Technology, Department of *
-* Electrical Engineering and Computer Science. Permission to *
-* copy this software, to redistribute it, and to use it for any *
-* purpose is granted, subject to the following restrictions and *
-* understandings. *
-* *
-* 1. Any copy made of this software must include this copyright *
-* notice in full. *
-* *
-* 2. Users of this software agree to make their best efforts (a)*
-* to return to the MIT Scheme project any improvements or *
-* extensions that they make, so that these may be included in *
-* future releases; and (b) to inform MIT of noteworthy uses of *
-* this software. *
-* *
-* 3. All materials developed as a consequence of the use of *
-* this software shall duly acknowledge such use, in accordance *
-* with the usual standards of acknowledging credit in academic *
-* research. *
-* *
-* 4. MIT has made no warrantee or representation that the *
-* operation of this software will be error-free, and MIT is *
-* under no obligation to provide any services, by way of *
-* maintenance, update, or otherwise. *
-* *
-* 5. In conjunction with products arising from the use of this *
-* material, there shall be no use of the name of the *
-* Massachusetts Institute of Technology nor of any adaptation *
-* thereof in any advertising, promotional, or sales literature *
-* without prior written consent from MIT in each case. *
-* *
-****************************************************************/
-
-/* File: STRINGPRIM.C
- *
- * String primitives.
- */
+/* -*-C-*-
+
+Copyright (c) 1987 Massachusetts Institute of Technology
+
+This material was developed by the Scheme project at the Massachusetts
+Institute of Technology, Department of Electrical Engineering and
+Computer Science. Permission to copy this software, to redistribute
+it, and to use it for any purpose is granted, subject to the following
+restrictions and understandings.
+
+1. Any copy made of this software must include this copyright notice
+in full.
+
+2. Users of this software agree to make their best efforts (a) to
+return to the MIT Scheme project any improvements or extensions that
+they make, so that these may be included in future releases; and (b)
+to inform MIT of noteworthy uses of this software.
+
+3. All materials developed as a consequence of the use of this
+software shall duly acknowledge such use, in accordance with the usual
+standards of acknowledging credit in academic research.
+
+4. MIT has made no warrantee or representation that the operation of
+this software will be error-free, and MIT is under no obligation to
+provide any services, by way of maintenance, update, or otherwise.
+
+5. In conjunction with products arising from the use of this material,
+there shall be no use of the name of the Massachusetts Institute of
+Technology nor of any adaptation thereof in any advertising,
+promotional, or sales literature without prior written consent from
+MIT in each case. */
+
+/* $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/string.c,v 5.2 1987/01/11 13:18:20 cph Exp $
+
+String primitives. */
#include "scheme.h"
#include "primitive.h"
10. SUBSTRING-MATCH-FORWARD-CI
11. SUBSTRING-MATCH-BACKWARD-CI Case insensitive of 8 & 9.
*/
-
+\f
Built_In_Primitive(Prim_Substring_Find_Next_Char_In_Set, 4,
"SUBSTRING-FIND-NEXT-CHAR-IN-SET")
{
long length;
fast char *first, *char_set;
- fast long start, end;
+ fast long start, end, c;
Primitive_4_Args();
Check_Substring_Args();
while (start < end)
{
- if (char_set[*first++] != '\0')
+ c = *first++;
+ if (char_set[c] != '\0')
return (Make_Unsigned_Fixnum( start));
start += 1;
}
{
long length;
fast char *first, *char_set;
- fast long start, end;
+ fast long start, end, c;
Primitive_4_Args();
Check_Substring_Args();
while (end > start)
{
end -= 1;
- if (char_set[*--first] != '\0')
+ c = *--first;
+ if (char_set[c] != '\0')
return (Make_Unsigned_Fixnum( end));
}
return (NIL);