;This file contains the patch which fixes the NAMESTRING bug where ;when you open up a logical name, it only used to consider the first ;item in the chain of entries of the logical name. ;I have tested this on most cases I can think of, and it seems to win. ;Note: I am not certain why the long form the GTJFN call was used. ;The only possible reason I could see was that the defaults for ;device, directory, name and extension had string pointers to a block ;R70 which didn't seem to be updated much. It seemed that the right ;thing was to use the short form of the GTJFN which made things alot ;easier. This fix COULD use the long form, but the purpose of this ;file is to really point out the basic fix required. The main reason ;why previous code lost was because the PARSE-ONLY bit was set. When ;you use GTJFN in this mode, it doesn't return a real JFN, and thus ;you really don't get the right information back from JFNS. NDDT.1 ;yank file: lisp:xlISP.EXE.2097 ;obtain symbol file: xlISP.SYMBOLS.2097 ;;; First set the bits so that we assume the file exists, use ;;; the short form, return flags and restrict the JFN nms6b3+12/ MOVEI A,LFGB20 movsi a,(gj%acc+gj%flg+gj%old+gj%sht) NMS6B3+13/ MOVE B,PNBP ;get the pointer to the filename NMS6B3+14/ GTJFN ;do the short GTJFN now NMS6B3+15/ IOJRST NMS6BB erjmp patch ;if we lose... patch/ 0 cain a,gjfx24 ;find out why. File not found? PATCH+1/ 0 jrst patch+6 ;yup, go try again PATCH+2/ 0 cain a,gjfx33 ;is it File Name Not Specified? PATCH+3/ 0 jrst patch+6 ;yup, retry. PATCH+4/ 0 caie a,gjfx19 ;perhaps it is a bad file type? PATCH+5/ 0 iojrst nms6bb ;nope, so it was a real error. PATCH+6/ 0 movsi a,(gj%acc+gj%flg+gj%sht+gj%ofg) ;yup try again... PATCH+7/ 0 move b,pnbp ;with parse-only bit set. PATCH+10/ 0 gtjfn ;do it! PATCH+11/ 0 iojrst nms6bb ;Well, we tried, but it insists on losing PATCH+12/ 0 jrst nms6b3+16 ;Win! go back to namestring. Please let me (FEINBERG@CMUC) know if there are any bugs found. The unprotected file NLISP.EXE at CMUC contains MACLISP.2009 with these changes if you want to check it out.