From 7c95c5ad38c5526794ce4359cd725a916e095bbd Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sat, 10 Aug 2013 19:33:30 -0600 Subject: [PATCH] add `pathstring] and @racket[stringstring] with @racket[string->bytes/utf-8] and +@racket[bytesbytes] and @racket[bytespath-element] and @racket[build-path]).} +@defproc[(pathbytes] and @racket[bytesstring] witk @racket[string->bytes/utf-8] and +@racket[bytessymbol (symbol->string 'JollyWog)) #ci(test 'JollyWog string->symbol (symbol->string 'JollyWog)) +(test #t symbolpath #"a") (bytes->path #"b")) +(test #f pathpath #"b") (bytes->path #"a")) +(test #t pathpath #"a") (bytes->path #"b") (bytes->path #"c")) +(test #f pathpath #"a") (bytes->path #"c") (bytes->path #"b")) +(test #t pathpath #"a") (bytes->path #"aa")) +(test #f pathpath #"aa") (bytes->path #"a")) + (test (string->path "x.zo") path-replace-suffix "x.rkt" ".zo") (test (string->path "x.zo") path-replace-suffix "x.rkt" #".zo") (test (string->path "x.zo") path-replace-suffix "x" #".zo") diff --git a/racket/collects/racket/HISTORY.txt b/racket/collects/racket/HISTORY.txt index c4bb6f2587..2a22539e85 100644 --- a/racket/collects/racket/HISTORY.txt +++ b/racket/collects/racket/HISTORY.txt @@ -1,3 +1,6 @@ +Version 5.90.0.6 +Added pathbytes)]) + path?", mz_strcmp, >) +GEN_BYTE_STRING_PATH_COMP(path_lt, "path char string */ /**********************************************************************/ diff --git a/racket/src/racket/src/symbol.c b/racket/src/racket/src/symbol.c index 36b5bfe38b..203429fdf9 100644 --- a/racket/src/racket/src/symbol.c +++ b/racket/src/racket/src/symbol.c @@ -66,6 +66,7 @@ THREAD_LOCAL_DECL(static int gensym_counter); void scheme_set_case_sensitive(int v) { scheme_case_sensitive = v; } /* locals */ +static Scheme_Object *symbol_lt (int argc, Scheme_Object *argv[]); static Scheme_Object *symbol_p_prim (int argc, Scheme_Object *argv[]); static Scheme_Object *symbol_unreadable_p_prim (int argc, Scheme_Object *argv[]); static Scheme_Object *symbol_interned_p_prim (int argc, Scheme_Object *argv[]); @@ -333,7 +334,8 @@ scheme_init_symbol (Scheme_Env *env) p = scheme_make_folding_prim(symbol_interned_p_prim, "symbol-interned?", 1, 1, 1); scheme_add_global_constant("symbol-interned?", p, env); - + + GLOBAL_FOLDING_PRIM("symbolsymbol", string_to_symbol_prim, 1, 1, env); GLOBAL_IMMED_PRIM("string->uninterned-symbol", string_to_uninterned_symbol_prim, 1, 1, env); GLOBAL_IMMED_PRIM("string->unreadable-symbol", string_to_unreadable_symbol_prim, 1, 1, env); @@ -842,19 +844,20 @@ keyword_p_prim (int argc, Scheme_Object *argv[]) return SCHEME_KEYWORDP(argv[0]) ? scheme_true : scheme_false; } -static Scheme_Object *keyword_lt (int argc, Scheme_Object *argv[]) +static Scheme_Object *symkey_lt (const char *who, Scheme_Type ty, const char *contract, + int argc, Scheme_Object *argv[]) { Scheme_Object *prev = argv[0], *kw; GC_CAN_IGNORE unsigned char *a, *b; int i, al, bl, t; - if (!SCHEME_KEYWORDP(prev)) - scheme_wrong_contract("keyword= bl) { /* Check remaining types */ for (i++; i < argc; i++) { - if (!SCHEME_KEYWORDP(argv[i])) - scheme_wrong_contract("keyword