452 |
(insert "\nThe parent syntax table is:") |
(insert "\nThe parent syntax table is:") |
453 |
(describe-vector table 'internal-describe-syntax-value)))))) |
(describe-vector table 'internal-describe-syntax-value)))))) |
454 |
|
|
455 |
|
(defun help-describe-category-set (value) |
456 |
|
(insert (cond |
457 |
|
((null value) "default") |
458 |
|
((char-table-p value) "deeper char-table ...") |
459 |
|
(t (condition-case err |
460 |
|
(category-set-mnemonics value) |
461 |
|
(error "invalid")))))) |
462 |
|
|
463 |
|
;;;###autoload |
464 |
|
(defun describe-categories (&optional buffer) |
465 |
|
"Describe the category specifications in the current category table. |
466 |
|
The descriptions are inserted in a buffer, which is then displayed." |
467 |
|
(interactive) |
468 |
|
(setq buffer (or buffer (current-buffer))) |
469 |
|
(help-setup-xref (list #'describe-categories buffer) (interactive-p)) |
470 |
|
(with-output-to-temp-buffer (help-buffer) |
471 |
|
(let ((table (with-current-buffer buffer (category-table)))) |
472 |
|
(with-current-buffer standard-output |
473 |
|
(describe-vector table 'help-describe-category-set) |
474 |
|
(let ((docs (char-table-extra-slot table 0))) |
475 |
|
(if (or (not (vectorp docs)) (/= (length docs) 95)) |
476 |
|
(insert "Invalid first extra slot in this char table\n") |
477 |
|
(insert "Meanings of mnemonic characters are:\n") |
478 |
|
(dotimes (i 95) |
479 |
|
(let ((elt (aref docs i))) |
480 |
|
(when elt |
481 |
|
(insert (+ i ?\ ) ": " elt "\n")))) |
482 |
|
(while (setq table (char-table-parent table)) |
483 |
|
(insert "\nThe parent category table is:") |
484 |
|
(describe-vector table 'help-describe-category-set)))))))) |
485 |
|
|
486 |
(provide 'help-fns) |
(provide 'help-fns) |
487 |
|
|
488 |
;;; help-fns.el ends here |
;;; help-fns.el ends here |