X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=guile18%2Flang%2Felisp%2Fprimitives%2Fstrings.scm;fp=guile18%2Flang%2Felisp%2Fprimitives%2Fstrings.scm;h=85e462f8b1721b987598ea4b77cacfcce8832780;hb=139c38d9204dd07f6b235f83bae644faedbc63fd;hp=0000000000000000000000000000000000000000;hpb=652ed35a2013489d0a14fede6307cd2595abb2c4;p=lilypond.git diff --git a/guile18/lang/elisp/primitives/strings.scm b/guile18/lang/elisp/primitives/strings.scm new file mode 100644 index 0000000000..85e462f8b1 --- /dev/null +++ b/guile18/lang/elisp/primitives/strings.scm @@ -0,0 +1,40 @@ +(define-module (lang elisp primitives strings) + #:use-module (lang elisp internals fset) + #:use-module (lang elisp internals null) + #:use-module (lang elisp internals signal)) + +(fset 'substring substring) + +(fset 'concat + (lambda args + (apply string-append + (map (lambda (arg) + (cond + ((string? arg) arg) + ((list? arg) (list->string arg)) + ((vector? arg) (list->string (vector->list arg))) + (else (error "Wrong type argument for concat")))) + args)))) + +(fset 'string-to-number string->number) + +(fset 'number-to-string number->string) + +(fset 'string-lessp (lambda->nil stringinteger (string-ref array idx))) + (else (wta 'arrayp array 1))))) + +(fset 'aset + (lambda (array idx newelt) + (cond ((vector? array) (vector-set! array idx newelt)) + ((string? array) (string-set! array idx (integer->char newelt))) + (else (wta 'arrayp array 1))))) + +(fset 'stringp (lambda->nil string?)) + +(fset 'vector vector)