]> git.sur5r.net Git - cc65/commitdiff
Allow more chars in filenames
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 18 Nov 2002 19:37:02 +0000 (19:37 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 18 Nov 2002 19:37:02 +0000 (19:37 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@1541 b7a2c559-68d2-44c3-8de9-860c34a00d81

libsrc/cbm/filename.s

index 360c6d79683caba73c3f8533bbe133e62145bf25..8d00d35beb4f2034eb20f018f85bc9100e29a7a2 100644 (file)
@@ -74,16 +74,23 @@ nameloop:
         lda     (ptr1),y        ; Get next char from filename
         beq     namedone        ; Jump if end of name reached
 
-; Check for valid chars in the file name
-
+; Check for valid chars in the file name. We allow letters, digits, plus some
+; additional chars from a table.
+
+        ldx     #fncharcount-1
+namecheck:
+        cmp     fnchars,x
+        beq     nameok
+        dex
+        bpl     namecheck
         tax
         lda     __ctype,x
-        and     #CT_ALNUM       ; Letters and digits are allowed
+        and     #(CT_LOWER|CT_DIGIT)
         beq     invalidname
 
 ; Check the maximum length, store the character
 
-        ldx     fnlen
+nameok: ldx     fnlen
         cpx     #14             ; Maximum length reached?
         bcs     invalidname
         lda     (ptr1),y        ; Reload char
@@ -154,5 +161,9 @@ fnlen:  .res    1
 fncmd:  .byte   's'             ; Use as scratch command
 fnbuf:  .res    20
 
+.rodata
+; Characters that are ok in filenames besides digits and letters
+fnchars:.byte   ".,-_+()"
+fncharcount = *-fnchars