@@ -59,7 +59,7 @@ symbol or if SYMTABLE is invalid."
5959 (setq def-name name
6060 elisp-name (concat (symtable:name symtable) " ::" name)
6161 elisp-symbol (funcall intern-op elisp-name)))
62- ; ; Comment this out so can look for and try to remove symbols yet not defined.
62+ ; ; Comment this out so can look for and try to remove symbols not yet defined.
6363 ; ; (unless elisp-symbol
6464 ; ; (error "(symtable:operate): Use `%s' to create a new type named `%s' before using `%s' on it"
6565 ; ; (if (equal (plist-get symtable 'name) "actypes") "defact" "defib")
@@ -216,7 +216,7 @@ Return the new function symbol derived from TYPE."
216216 " Delete a Hyperbole TYPE derived from TYPE-CATEGORY (both symbols).
217217Return the Hyperbole symbol for the TYPE if it existed, else nil."
218218 (let* ((sym (htype:symbol type type-category))
219- (exists (fboundp ' sym )))
219+ (exists (fboundp sym)))
220220 (setplist sym nil )
221221 (symtable:delete type (symtable:select type-category))
222222 (symset:delete type type-category 'symbols )
@@ -246,8 +246,8 @@ When optional SYM is given, returns the name for that symbol only, if any."
246246; ;; ------------------------------------------------------------------------
247247
248248(defun htype:symbol (type type-category )
249- " Return Hyperbole type symbol composed from TYPE and TYPE-CATEGORY (both symbols)."
250- (symtable:get type (symtable:select type-category)))
249+ " Return possibly new Hyperbole type symbol composed from TYPE and TYPE-CATEGORY (both symbols)."
250+ (intern ( concat ( symbol-name type-category) " :: " ( symbol-name type) )))
251251
252252; ;; ========================================================================
253253; ;; action class
@@ -373,9 +373,10 @@ Other paths are simply expanded. Non-path arguments are returned unchanged."
373373 (let ((loc (hattr:get 'hbut:current 'loc )))
374374 (mapcar (lambda (arg )
375375 (hpath:relative-to arg
376- (if (stringp loc)
377- loc
378- (buffer-local-value 'default-directory loc))))
376+ (file-name-directory
377+ (if (stringp loc)
378+ loc
379+ (buffer-local-value 'default-directory loc)))))
379380 args-list)))
380381
381382
@@ -429,7 +430,7 @@ performing ACTION."
429430 actype
430431 (symbol-name actype))))
431432 (when (string-match " \\ `actypes::" name)
432- (make-symbol (substring sym- name (match-end 0 ))))))
433+ (make-symbol (substring name (match-end 0 ))))))
433434
434435(defun actype:eval (actype &rest args )
435436 " Performs action formed from ACTYPE and rest of ARGS and returns value.
@@ -485,8 +486,9 @@ The type uses PARAMS to perform DEFAULT-ACTION (list of the rest of the
485486arguments). A call to this function is syntactically the same as for
486487`defun' , but a doc string is required.
487488Return symbol created when successful, else nil."
488- (symtable:add type symtable:actypes)
489- (list 'htype:create type 'actypes doc params default-action `'(definition-name , type )))
489+ `(progn
490+ (symtable:add ', type symtable:actypes)
491+ (htype:create , type actypes , doc , params , default-action '(definition-name , type ))))
490492
491493(defalias 'defact 'actype:create )
492494(put 'actype:create 'lisp-indent-function 'defun )
0 commit comments