Server IP : 111.118.215.189 / Your IP : 18.117.158.174 Web Server : Apache System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64 User : a1673wkz ( 2475) PHP Version : 8.2.25 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /usr/share/emacs/24.3/lisp/textmodes/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
;ELC ;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:11:46 2024 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/textmodes/artist.el ;;; in Emacs version 24.3.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defconst artist-version "1.2.6") (defconst artist-maintainer-address "tab@lysator.liu.se") (byte-code "\300\301\302\303\304\305%\210\300\306\302\307\304\301%\210\310\311\312\313\304\301\314\315&\210\310\316\317\320\304\301\314\321&\210\310\322\323\324\304\301\314\321&\210\310\325\312\326\304\301\314\315&\207" [custom-declare-group artist nil "Customization of the Artist mode." :group mouse artist-text "Customization of the text rendering." custom-declare-variable artist-rubber-banding t "Interactively do rubber-banding when non-nil." :type boolean artist-first-char 49 "Character to set at first point when not rubber-banding." character artist-second-char 50 "Character to set at second point when not rubber-banding." artist-interface-with-rect "Whether to interface with the rect package or not.\n\nInterfacing to the rect package means that the Copy and Paste operations\nwill use the rectangle buffer when accessing the copied area. This means\nthat you can insert a rectangle which is copied using the artist package\nand vice versa.\n\nIf this causes any problem for you (for example, if the implementation of\nthe rectangle package changes), you can set this variable to nil, and the\nartist package will use its own copy buffer."] 8) #@292 A vector of characters to use as arrows. The vector is 8 elements long and contains a character for each direction, or nil if there is no suitable character to use for arrow in that direction. The directions are as follows: 5 6 7 \ | / 4 - * - 0 / | \ 3 2 1 (defvar artist-arrows [62 nil 118 76 60 nil 94 nil] (#$ . 1815)) (byte-code "\300\301\302\303\304\305\306\307&\210\300\310\311\312\304\305\306\313&\210\300\314\315\316\304\305\306\317&\210\300\320\311\321\304\305\306\313&\210\300\322\323\324\304\305\306\325&\210\300\326\327\330\304\305\306\325&\210\300\331\311\332\304\305\306\313&\210\300\333\302\334\304\305\306\335&\207" [custom-declare-variable artist-aspect-ratio 1 "Defines the character height-to-width aspect ratio.\nThis is used when drawing squares and circles." :group artist :type number artist-trim-line-endings t "Whether or not to remove white-space at end of lines.\n\nIf non-nil, line-endings are trimmed (that is, extraneous white-space\nat the end of the line is removed) when the shape is drawn." boolean artist-flood-fill-right-border 'window-width "Right edge definition, used when flood-filling.\n\nWhen flood-filling, if the area is not closed off to the right, then\nflood-filling will fill no more to the right than specified by this\nvariable. This limit is called the fill-border." (choice (const :tag "limited to window" window-width) (const :tag "limited to value of `fill-column'" fill-column)) artist-flood-fill-show-incrementally "Whether or not to incrementally update display when flood-filling.\n\nIf non-nil, incrementally update display when flood-filling.\nIf set to non-nil, this currently implies discarding any input events\nduring the flood-fill." artist-ellipse-right-char 41 "Character to use at the rightmost position when drawing narrow ellipses.\n\nIn this figure, it is the right parenthesis (the ``)'' character):\n -----\n ( )\n -----" character artist-ellipse-left-char 40 "Character to use at the leftmost position when drawing narrow ellipses.\n\nIn this figure, it is the left parenthesis (the ``('' character):\n -----\n ( )\n -----" artist-picture-compatibility "Whether or not picture mode compatibility is on." artist-vaporize-fuzziness "How to vaporize lines that are cut off.\n\nAccept this many characters cutting off a line and still treat\nit as one line.\nExample:\n If `artist-vaporize-fuzziness' is 2, then those will be recognized as\n lines from A to B (provided you start vaporizing them at the ``*''):\n /\n A----*------/-----------B\n \\/\n A----*----/\\------------B\n / \\\n\n but this one won't, since it is cut off by more than 2 characters:\n \\/ /\n A----*----/\\/----------B\n / /\\\n (in fact, only the left part [between the A and the leftmost ``/''\n crossing the line] will be vaporized)." integer] 8) #@71 If in X Windows, use this pointer shape while drawing with the mouse. (defvar artist-pointer-shape (byte-code "\302=\205 \207" [window-system x-pointer-crosshair x] 2) (#$ . 4875)) (byte-code "\300\301\302\303\304\305\306\307&\210\310\311\301\"\210\300\312\313\314\304\305\306\315&\210\300\316\317\320\304\305\306\315&\210\300\321\322\323\304\305\306\315&\210\300\324\325\326\304\327\306\330&\210\300\331\332\333\304\327\306\334&\207" [custom-declare-variable artist-text-renderer-function 'artist-figlet "Function for doing text rendering." :group artist-text :type symbol defvaralias artist-text-renderer artist-figlet-program "figlet" "Program to run for `figlet'." string artist-figlet-default-font "standard" "Default font for `figlet'." artist-figlet-list-fonts-command "for dir in `figlet -I2`; do cd $dir; ls *.flf; done" "Command to run to get list of available fonts." artist-spray-interval 0.2 "Number of seconds between repeated spraying." artist number artist-spray-radius 4 "Size of the area for spraying." integer] 8) #@180 Characters (``color'') to use when spraying. They should be ordered from the ``lightest'' to the ``heaviest'' since spraying replaces a light character with the next heavier one. (defvar artist-spray-chars '(32 46 45 43 109 37 42 35) (#$ . 5924)) #@240 Initial character to use when spraying. This character is used if spraying upon a character that is not in `artist-spray-chars'. The character defined by this variable should be in `artist-spray-chars', or spraying will behave strangely. (defvar artist-spray-new-char 46 (#$ . 6178)) #@53 Non-nil to enable `artist-mode' and nil to disable. (defvar artist-mode nil (#$ . 6469)) (make-variable-buffer-local 'artist-mode) #@72 Name of Artist mode beginning with a space (appears in the mode-line). (defvar artist-mode-name " Artist" (#$ . 6606)) #@38 Current selected graphics operation. (defvar artist-curr-go 'pen-line (#$ . 6731)) (make-variable-buffer-local 'artist-curr-go) #@75 Boolean to tell whether user has set some char to use when drawing lines. (defvar artist-line-char-set nil (#$ . 6865)) (make-variable-buffer-local 'artist-line-char-set) #@33 Char to use when drawing lines. (defvar artist-line-char nil (#$ . 7042)) (make-variable-buffer-local 'artist-line-char) #@69 Boolean to tell whether user has set some char to use when filling. (defvar artist-fill-char-set nil (#$ . 7169)) (make-variable-buffer-local 'artist-fill-char-set) #@27 Char to use when filling. (defvar artist-fill-char nil (#$ . 7340)) (make-variable-buffer-local 'artist-fill-char) #@27 Char to use when erasing. (defvar artist-erase-char 32 (#$ . 7461)) (make-variable-buffer-local 'artist-erase-char) #@59 Char to use when a fill-char is required but none is set. (defvar artist-default-fill-char 46 (#$ . 7583)) (make-variable-buffer-local 'artist-default-fill-char) #@14 Copy buffer. (defvar artist-copy-buffer nil (#$ . 7751)) #@59 Line-number for top-most visited line for draw operation. (defvar artist-draw-region-min-y 0 (#$ . 7814)) (make-variable-buffer-local 'artist-draw-region-min-y) #@62 Line-number for bottom-most visited line for draw operation. (defvar artist-draw-region-max-y 0 (#$ . 7981)) (make-variable-buffer-local 'artist-draw-region-max-y) #@88 When non-nil, draw shapes without border. The fill char is used instead, if it is set. (defvar artist-borderless-shapes nil (#$ . 8151)) (make-variable-buffer-local 'artist-borderless-shapes) #@373 Assoc list for looking up next and/or previous draw operation. The structure is as follows: (OP . (PREV-OP . NEXT-OP)) where the elements are as follows: * OP is an atom: the KEY-SYMBOL in the `artist-mt' structure * PREV-OP and NEXT-OP are strings: the KEYWORD in the `artist-mt' structure This variable is initialized by the `artist-make-prev-next-op-alist' function. (defvar artist-prev-next-op-alist nil (#$ . 8350)) (byte-code "\203 \302\303!\210\302\304!\210 \203 \302\305!\210\302\207" [artist-interface-with-rect artist-picture-compatibility require rect reporter picture] 2) (defvar artist-key-is-drawing nil) (defvar artist-key-endpoint1 nil) (defvar artist-key-poly-point-list nil) (defvar artist-key-shape nil) (defvar artist-key-draw-how nil) (defvar artist-popup-menu-table nil) (defvar artist-key-compl-table nil) (defvar artist-rb-save-data nil) (defvar artist-arrow-point-1 nil) (defvar artist-arrow-point-2 nil) (defvar artist-menu-map (byte-code "\303 \304\305\306#\210\304\307\310#\210\304\311\312#\210\304\313\314#\210\304\315\316#\210\304\317\320#\210\304\321\322#\210\304\323\324#\210\325\326\211\203f \n@\304\327\330 8!\331 @ A@\332\333\334 @\"\335\336\337\340\341\330 8DF\257#\210\nA\211\204; *)\207" [map op --dolist-tail-- make-sparse-keymap define-key [spray-chars] (menu-item "Characters for Spray" artist-select-spray-chars :help "Choose characters for sprayed by the spray-can") [borders] (menu-item "Draw Shape Borders" artist-toggle-borderless-shapes :help "Toggle whether shapes are drawn with borders" :button (:toggle not artist-borderless-shapes)) [trimming] (menu-item "Trim Line Endings" artist-toggle-trim-line-endings :help "Toggle trimming of line-endings" :button (:toggle . artist-trim-line-endings)) [rubber-band] (menu-item "Rubber-banding" artist-toggle-rubber-banding :help "Toggle rubber-banding" :button (:toggle . artist-rubber-banding)) [set-erase] (menu-item "Character to Erase..." artist-select-erase-char :help "Choose a specific character to erase") [set-line] (menu-item "Character for Line..." artist-select-line-char :help "Choose the character to insert when drawing lines") [set-fill] (menu-item "Character for Fill..." artist-select-fill-char :help "Choose the character to insert when filling in shapes") [artist-separator] (menu-item "--") (("Vaporize" artist-select-op-vaporize-lines vaporize-lines) ("Erase" artist-select-op-erase-rectangle erase-rect) ("Spray-can" artist-select-op-spray-set-size spray-get-size) ("Text" artist-select-op-text-overwrite text-ovwrt) ("Ellipse" artist-select-op-circle circle) ("Poly-line" artist-select-op-straight-poly-line spolyline) ("Square" artist-select-op-square square) ("Rectangle" artist-select-op-rectangle rectangle) ("Line" artist-select-op-straight-line s-line) ("Pen" artist-select-op-pen-line pen-line)) nil vector 2 menu-item :help format "Draw using the %s style" :button :radio eq artist-curr-go quote] 16)) #@33 Keymap for `artist-minor-mode'. (defvar artist-mode-map (byte-code "\303 \303 \304\305\306#\210\304\307\306#\210\304\310\311#\210\304\312\311#\210\304\313\314#\210\304\315\314#\210\304\316\317#\210\304\320\321#\210\304\322\323#\210\304\324\325#\210\304\326\325#\210\304\327\330#\210\304\331\330#\210\304\332\333#\210\304\334\333#\210\304\335\336#\210\304\337\336#\210\304\340\341#\210\304\342\343#\210\304\344\345#\210\304\346\347#\210\304\350\351#\210\304\352\353#\210\304\354\355#\210\304\356\357#\210\304\360\361#\210\304\362\363#\210\304\364\365#\210\304\366\367#\210\304\370\371#\210\304\372\373#\210\304\374\373#\210\304\375\376#\210\304\377\201@ #\210\304\201A \201B #\210\304\201C \201D #\210\304\201E \201F #\210\304\201G \201H #\210\304\201I \201J #\210\304\201K \201L #\210\304\201M \201N #\210\304\201O \201P #\210\304\201Q \201R #\210\304\201S \201T #\210\304\201U \201V #\210\304\201W \201X #\210\304\201Y \201Z #\210\304\201[ \201\\ #\210\304\201] \201^ #\210\304\201_ \201` \nB#\210)\207" [map artist-mode-map artist-menu-map make-sparse-keymap define-key [down-mouse-1] artist-down-mouse-1 [S-down-mouse-1] [down-mouse-2] artist-mouse-choose-operation [S-down-mouse-2] [down-mouse-3] artist-down-mouse-3 [S-down-mouse-3] [C-mouse-4] artist-select-prev-op-in-list [C-mouse-5] artist-select-next-op-in-list " " artist-key-set-point [up] artist-previous-line "" [down] artist-next-line "" [left] artist-backward-char "" [right] artist-forward-char "" "<" artist-toggle-first-arrow ">" artist-toggle-second-arrow "" artist-select-erase-char "" artist-select-fill-char "\f" artist-select-line-char "" artist-select-operation "" artist-toggle-rubber-banding "" artist-toggle-trim-line-endings "" artist-toggle-borderless-shapes "" artist-mode-off "l" artist-select-op-line "L" artist-select-op-straight-line "r" artist-select-op-rectangle "R" artist-select-op-square "s" "p" artist-select-op-poly-line "P" artist-select-op-straight-poly-line "e" artist-select-op-ellipse "c" artist-select-op-circle "t" artist-select-op-text-see-thru "T" artist-select-op-text-overwrite "S" artist-select-op-spray-can "z" artist-select-op-spray-set-size "" artist-select-op-erase-char "E" artist-select-op-erase-rectangle "v" artist-select-op-vaporize-line "V" artist-select-op-vaporize-lines "" artist-select-op-cut-rectangle "\367" artist-select-op-copy-rectangle "" artist-select-op-paste "f" artist-select-op-flood-fill "" artist-submit-bug-report [menu-bar artist] "Artist"] 5) (#$ . 11304)) #@46 Replacement table for `artist-replace-char'. (defvar artist-replacement-table (make-vector 256 0) (#$ . 13928)) #@5659 Master Table for `artist-mode'. This table is primarily a table over the different graphics operations available in Artist mode, but it also holds layout information for the popup menu. The master table is a list of table elements. The elements of this table have the layout (TAG INFO-PART) There are three kinds of TAG: `menu' -- a sub-menu `separator' -- produce a separator in the popup menu `function-call' -- call a function `graphics-operation' -- a graphics operation The layout of the INFO-PART for `menu' is (TITLE ((TAG-1 INFO-PART-1) (TAG-2 INFO-PART-2) ...)) TITLE is the title of the submenu; this is followed by a list of menu items, each on the general form (TAG INFO-PART). The layout of the INFO-PART for `separator' is empty and not used. This is the layout of the INFO-PART for `function-call': (KEYWORD SYMBOL FN) KEYWORD is a string naming the operation, and appears in the popup menu. SYMBOL is the symbol for the operations. FN is the function performing the operation. This function is called with no arguments. Its return value is ignored. The layout of the INFO-PART for `graphics-operation' is (TITLE (UNSHIFTED SHIFTED)) TITLE is the title that appears in the popup menu. UNSHIFTED and SHIFTED specify for unshifted and shifted operation. Both have the form (KEYWORD KEY-SYMBOL MODE-LINE ARROW-PRED ARROW-SET-FN INIT-FN PREP-FILL-FN EXIT-FN DRAW-HOW DRAW-FN EXTRA-DRAW-INFO) KEYWORD is a string specifying the name of the shape to draw. This is used when selecting drawing operation. KEY-SYMBOL is the key which is used when looking up members through the functions `artist-go-get-MEMBER-from-symbol' and `artist-fc-get-MEMBER-from-symbol'. MODE-LINE is a string that appears in the mode-line when drawing the shape. ARROW-PRED is a function that is called to find out if the shape can have arrows. The function is called with no arguments and must return nil or t. ARROW-SET-FN is a function that is called to set arrow end-points. Arguments and return values for this function are described below. INIT-FN is, if non-nil, a function that is called when the first point of the shape is set. Arguments and return values for this function are described below. PREP-FILL-FN is, if non-nil, a function that is called after the last point is set, but before the filling is done. Arguments and return values for this function are described below. EXIT-FN is, if non-nil, a function that is called after filling is done. Arguments and return values for this function are described below. DRAW-HOW defines the kind of shape. The kinds of shapes are: `artist-do-continously' -- Do drawing operation continuously, as long as the mouse button is held down. `artist-do-poly' -- Do drawing operation many times. 1 -- Do drawing operation only once. 2 -- The drawing operation requires two points. DRAW-FN is the function to call for drawing. Arguments and return values for this function are described below. EXTRA-DRAW-INFO the layout of this depends on the value of DRAW-HOW: If DRAW-HOW is `artist-do-continously': (INTERVAL-FN) INTERVAL-FN is, if non-nil, a function to call for getting an interval between repeated calls to the DRAW-FN. This function is called with no arguments and must return a number, the interval in seconds. If nil, calls to DRAW-FN are done only when the mouse or cursor is moved. If DRAW-HOW is either `artist-do-poly' or 2: (UNDRAW-FN FILL-PRED FILL-FN) UNDRAW-FN is a function to call for undrawing the shape. Arguments and return values for this function are described below. FILL-PRED is a function that is called to find out if the shape can have arrows. The function must take no arguments and return nil or t. FILL-FN is a function to call for filling the shape. Arguments and return values for this function are described below. If DRAW-HOW is 1: () Note! All symbols and keywords (both in the `function-call' INFO-PART as well as in the `graphics-operation' INFO-PART) must be unique. The following table describe function arguments and return value for different functions and DRAW-HOWs. If DRAW-HOW is either `artist-do-continously' or 1: INIT-FN X Y ==> ignored PREP-FILL-FN X Y ==> ignored EXIT-FN X Y ==> ignored ARROW-SET-FN X Y ==> ignored DRAW-FN X Y ==> ignored If DRAW-HOW is 2: INIT-FN X1 Y1 ==> ignored PREP-FILL-FN X1 Y1 X2 Y2 ==> ignored EXIT-FN X1 Y1 X2 Y2 ==> ignored ARROW-SET-FN X1 Y1 X2 Y2 ==> ignored DRAW-FN X1 Y1 X2 Y2 ==> (ENDPOINT-1 ENDPOINT-2 SHAPE) UNDRAW-FN (ENDPOINT-1 ENDPOINT-2 SHAPE) ==> ignored FILL-FN (ENDPOINT-1 ENDPOINT-2 SHAPE) X1 Y1 X2 Y2 ==> ignored ENDPOINT-1 and ENDPOINT-2 are endpoints which are created with `artist-make-endpoint' SHAPE is an opaque structure, created by the DRAW-FN and intended to be used only by the UNDRAW-FN. If DRAW-HOW is `artist-do-poly': INIT-FN X1 Y1 PREP-FILL-FN POINT-LIST ARROW-SET-FN POINT-LIST EXIT-FN POINT-LIST DRAW-FN X-LAST Y-LAST X-NEW Y-NEW ==> (ENDPOINT-1 ENDPOINT-2 SHAPE) UNDRAW-FN (ENDPOINT-1 ENDPOINT-2 SHAPE) FILL-FN POINT-LIST ENDPOINT-1 and ENDPOINT-2 are endpoints which are created with `artist-make-endpoint'. SHAPE is an opaque structure, created by the DRAW-FN and intended to be used only by the UNDRAW-FN. POINT-LIST is a list of vectors [X Y]. (defvar artist-mt '((menu ("Drawing" ((function-call ("Undo" do-undo undo)) (separator) (graphics-operation ("Pen" (("Pen" pen-char "pen-c" artist-no-arrows nil nil nil nil artist-do-continously artist-pen (nil)) ("Pen Line" pen-line "pen-l" artist-arrows artist-pen-set-arrow-points artist-pen-reset-last-xy nil nil artist-do-continously artist-pen-line (nil))))) (graphics-operation ("Line" (("line" line "line" artist-arrows artist-set-arrow-points-for-2points nil nil nil 2 artist-draw-line (artist-undraw-line artist-nil nil)) ("straight line" s-line "sline" artist-arrows artist-set-arrow-points-for-2points nil nil nil 2 artist-draw-sline (artist-undraw-sline artist-nil nil))))) (graphics-operation ("Rectangle" (("rectangle" rect "rect" artist-no-arrows nil nil nil nil 2 artist-draw-rect (artist-undraw-rect artist-t-if-fill-char-set artist-fill-rect)) ("square" square "square" artist-no-arrows nil nil nil nil 2 artist-draw-square (artist-undraw-square artist-t-if-fill-char-set artist-fill-square))))) (graphics-operation ("Poly-line" (("poly-line" polyline "poly" artist-arrows artist-set-arrow-points-for-poly nil nil nil artist-do-poly artist-draw-line (artist-undraw-line artist-nil nil)) ("straight poly-line" spolyline "s-poly" artist-arrows artist-set-arrow-points-for-poly nil nil nil artist-do-poly artist-draw-sline (artist-undraw-sline artist-nil nil))))) (graphics-operation ("Ellipse" (("ellipse" ellipse "ellipse" artist-no-arrows nil nil nil nil 2 artist-draw-ellipse (artist-undraw-ellipse artist-t-if-fill-char-set artist-fill-ellipse)) ("circle" circle "circle" artist-no-arrows nil nil nil nil 2 artist-draw-circle (artist-undraw-circle artist-t-if-fill-char-set artist-fill-circle))))) (graphics-operation ("Text" (("text see-thru" text-thru "text-thru" artist-no-arrows nil nil nil nil 1 artist-text-see-thru nil) ("text overwrite" text-ovwrt "text-ovwrt" artist-no-arrows nil nil nil nil 1 artist-text-overwrite nil)))) (graphics-operation ("Spray-can" (("spray-can" spray-can "spray-can" artist-no-arrows nil nil nil nil artist-do-continously artist-spray (artist-spray-get-interval)) ("spray set size" spray-get-size "spray-size" artist-no-arrows nil nil artist-spray-clear-circle artist-spray-set-radius 2 artist-draw-circle (artist-undraw-circle artist-nil nil))))) (graphics-operation ("Erase" (("erase char" erase-char "erase-c" artist-no-arrows nil nil nil nil artist-do-continously artist-erase-char (nil)) ("erase rectangle" erase-rect "erase-r" artist-no-arrows nil nil nil nil 2 artist-draw-rect (artist-undraw-rect artist-t artist-erase-rect))))) (graphics-operation ("Vaporize" (("vaporize line" vaporize-line "vaporize-1" artist-no-arrows nil nil nil nil 1 artist-vaporize-line nil) ("vaporize lines" vaporize-lines "vaporize-n" artist-no-arrows nil nil nil nil 1 artist-vaporize-lines nil))))))) (menu ("Edit" ((graphics-operation ("Cut" (("cut rectangle" cut-r "cut-r" artist-no-arrows nil nil nil nil 2 artist-draw-rect (artist-undraw-rect artist-t artist-cut-rect)) ("cut square" cut-s "cut-s" artist-no-arrows nil nil nil nil 2 artist-draw-square (artist-undraw-square artist-t artist-cut-square))))) (graphics-operation ("Copy" (("copy rectangle" copy-r "copy-r" artist-no-arrows nil nil nil nil 2 artist-draw-rect (artist-undraw-rect artist-t artist-copy-rect)) ("copy square" copy-s "copy-s" artist-no-arrows nil nil nil nil 2 artist-draw-square (artist-undraw-square artist-t artist-copy-square))))) (graphics-operation ("Paste" (("paste" paste "paste" artist-no-arrows nil nil nil nil 1 artist-paste nil) ("paste" paste "paste" artist-no-arrows nil nil nil nil 1 artist-paste nil)))) (graphics-operation ("Flood-fill" (("flood-fill" flood-fill "flood" artist-no-arrows nil nil nil nil 1 artist-flood-fill nil) ("flood-fill" flood-fill "flood" artist-no-arrows nil nil nil nil 1 artist-flood-fill nil))))))) (menu ("Settings" ((function-call ("Set Fill" set-fill artist-select-fill-char)) (function-call ("Set Line" set-line artist-select-line-char)) (function-call ("Set Erase" set-erase artist-select-erase-char)) (function-call ("Rubber-banding" rubber-band artist-toggle-rubber-banding)) (function-call ("Trimming" trimming artist-toggle-trim-line-endings)) (function-call ("Borders" borders artist-toggle-borderless-shapes)) (function-call ("Spray-chars" spray-chars artist-select-spray-chars)))))) (#$ . 14048)) #@59 Retrieve the tag component from the master table ELEMENT. (defalias 'artist-mt-get-tag #[(element) "\301\234\207" [element 0] 2 (#$ . 24088)]) #@65 Retrieve the info part component from the master table ELEMENT. (defalias 'artist-mt-get-info-part #[(element) "\301\234\207" [element 1] 2 (#$ . 24238)]) #@73 Retrieve the description component from a graphics operation INFO-PART. (defalias 'artist-go-get-desc #[(info-part) "\301\234\207" [info-part 0] 2 (#$ . 24400)]) (put 'artist-go-get-desc 'byte-optimizer 'byte-compile-inline-expand) #@66 Retrieve the unshifted info from a graphics operation INFO-PART. (defalias 'artist-go-get-unshifted #[(info-part) "\301\234\302\234\207" [info-part 1 0] 2 (#$ . 24639)]) (put 'artist-go-get-unshifted 'byte-optimizer 'byte-compile-inline-expand) #@64 Retrieve the shifted info from a graphics operation INFO-PART. (defalias 'artist-go-get-shifted #[(info-part) "\301\234\301\234\207" [info-part 1] 2 (#$ . 24891)]) (put 'artist-go-get-shifted 'byte-optimizer 'byte-compile-inline-expand) #@131 Retrieve the keyword component from an INFO-VARIANT-PART. An INFO-VARIANT-PART is the shifted or unshifted info from a info-part. (defalias 'artist-go-get-keyword #[(info-variant-part) "\301\234\207" [info-variant-part 0] 2 (#$ . 25136)]) (put 'artist-go-get-keyword 'byte-optimizer 'byte-compile-inline-expand) #@130 Retrieve the symbol component from an INFO-VARIANT-PART. An INFO-VARIANT-PART is the shifted or unshifted info from a info-part. (defalias 'artist-go-get-symbol #[(info-variant-part) "\301\234\207" [info-variant-part 1] 2 (#$ . 25456)]) (put 'artist-go-get-symbol 'byte-optimizer 'byte-compile-inline-expand) #@133 Retrieve the mode line component from an INFO-VARIANT-PART. An INFO-VARIANT-PART is the shifted or unshifted info from a info-part. (defalias 'artist-go-get-mode-line #[(info-variant-part) "\301\234\207" [info-variant-part 2] 2 (#$ . 25773)]) (put 'artist-go-get-mode-line 'byte-optimizer 'byte-compile-inline-expand) #@139 Retrieve the arrow predicate component from an INFO-VARIANT-PART. An INFO-VARIANT-PART is the shifted or unshifted info from a info-part. (defalias 'artist-go-get-arrow-pred #[(info-variant-part) "\301\234\207" [info-variant-part 3] 2 (#$ . 26099)]) (put 'artist-go-get-arrow-pred 'byte-optimizer 'byte-compile-inline-expand) #@133 Retrieve the arrow set component from an INFO-VARIANT-PART. An INFO-VARIANT-PART is the shifted or unshifted info from a info-part. (defalias 'artist-go-get-arrow-set-fn #[(info-variant-part) "\301\234\207" [info-variant-part 4] 2 (#$ . 26433)]) (put 'artist-go-get-arrow-set-fn 'byte-optimizer 'byte-compile-inline-expand) #@137 Retrieve the init function component from an INFO-VARIANT-PART. An INFO-VARIANT-PART is the shifted or unshifted info from a info-part. (defalias 'artist-go-get-init-fn #[(info-variant-part) "\301\234\207" [info-variant-part 5] 2 (#$ . 26765)]) (put 'artist-go-get-init-fn 'byte-optimizer 'byte-compile-inline-expand) #@149 Retrieve the fill preparation function component from an INFO-VARIANT-PART. An INFO-VARIANT-PART is the shifted or unshifted info from a info-part. (defalias 'artist-go-get-prep-fill-fn #[(info-variant-part) "\301\234\207" [info-variant-part 6] 2 (#$ . 27091)]) (put 'artist-go-get-prep-fill-fn 'byte-optimizer 'byte-compile-inline-expand) #@128 Retrieve the exit component from an INFO-VARIANT-PART. An INFO-VARIANT-PART is the shifted or unshifted info from a info-part. (defalias 'artist-go-get-exit-fn #[(info-variant-part) "\301\234\207" [info-variant-part 7] 2 (#$ . 27439)]) (put 'artist-go-get-exit-fn 'byte-optimizer 'byte-compile-inline-expand) #@132 Retrieve the draw how component from an INFO-VARIANT-PART. An INFO-VARIANT-PART is the shifted or unshifted info from a info-part. (defalias 'artist-go-get-draw-how #[(info-variant-part) "\301\234\207" [info-variant-part 8] 2 (#$ . 27756)]) (put 'artist-go-get-draw-how 'byte-optimizer 'byte-compile-inline-expand) #@137 Retrieve the draw function component from an INFO-VARIANT-PART. An INFO-VARIANT-PART is the shifted or unshifted info from a info-part. (defalias 'artist-go-get-draw-fn #[(info-variant-part) "\301\234\207" [info-variant-part 9] 2 (#$ . 28079)]) (put 'artist-go-get-draw-fn 'byte-optimizer 'byte-compile-inline-expand) #@262 Retrieve the undraw function component from an INFO-VARIANT-PART. An INFO-VARIANT-PART is the shifted or unshifted info from a info-part. This interval function component is available only if the `draw-how' component is other than `artist-do-continously' or 1. (defalias 'artist-go-get-undraw-fn #[(info-variant-part) "\301\234\302\234\207" [info-variant-part 10 0] 2 (#$ . 28405)]) (put 'artist-go-get-undraw-fn 'byte-optimizer 'byte-compile-inline-expand) #@248 Retrieve the interval function component from an INFO-VARIANT-PART. An INFO-VARIANT-PART is the shifted or unshifted info from a info-part. This interval function component is available only if the `draw-how' component is `artist-do-continously'. (defalias 'artist-go-get-interval-fn #[(info-variant-part) "\301\234\302\234\207" [info-variant-part 10 0] 2 (#$ . 28871)]) (put 'artist-go-get-interval-fn 'byte-optimizer 'byte-compile-inline-expand) #@261 Retrieve the fill predicate component from an INFO-VARIANT-PART. An INFO-VARIANT-PART is the shifted or unshifted info from a info-part. This interval function component is available only if the `draw-how' component is other than `artist-do-continously' or 1. (defalias 'artist-go-get-fill-pred #[(info-variant-part) "\301\234\302\234\207" [info-variant-part 10 1] 2 (#$ . 29327)]) (put 'artist-go-get-fill-pred 'byte-optimizer 'byte-compile-inline-expand) #@260 Retrieve the fill function component from an INFO-VARIANT-PART. An INFO-VARIANT-PART is the shifted or unshifted info from a info-part. This interval function component is available only if the `draw-how' component is other than `artist-do-continously' or 1. (defalias 'artist-go-get-fill-fn #[(info-variant-part) "\301\234\302\234\207" [info-variant-part 10 2] 2 (#$ . 29792)]) (put 'artist-go-get-fill-fn 'byte-optimizer 'byte-compile-inline-expand) #@69 Retrieve the keyword component from a graphics operation INFO-PART. (defalias 'artist-fc-get-keyword #[(info-part) "\301\234\207" [info-part 0] 2 (#$ . 30251)]) (put 'artist-fc-get-keyword 'byte-optimizer 'byte-compile-inline-expand) #@68 Retrieve the symbol component from a graphics operation INFO-PART. (defalias 'artist-fc-get-symbol #[(info-part) "\301\234\207" [info-part 1] 2 (#$ . 30492)]) (put 'artist-fc-get-symbol 'byte-optimizer 'byte-compile-inline-expand) #@70 Retrieve the function component from a graphics operation INFO-PART. (defalias 'artist-fc-get-fn #[(info-part) "\301\234\207" [info-part 2] 2 (#$ . 30730)]) (put 'artist-fc-get-fn 'byte-optimizer 'byte-compile-inline-expand) #@67 Retrieve the title component from a graphics operation INFO-PART. (defalias 'artist-mn-get-title #[(info-part) "\301\234\207" [info-part 0] 2 (#$ . 30962)]) (put 'artist-mn-get-title 'byte-optimizer 'byte-compile-inline-expand) #@67 Retrieve the items component from a graphics operation INFO-PART. (defalias 'artist-mn-get-items #[(info-part) "\301\234\207" [info-part 1] 2 (#$ . 31197)]) (put 'artist-mn-get-items 'byte-optimizer 'byte-compile-inline-expand) #@108 Find the last non-nil draw operation in OP-LIST. Optional LAST-NON-NIL will be returned if OP-LIST is nil. (defalias 'artist-get-last-non-nil-op #[(op-list &optional last-non-nil) "\203 \302A@@\206 \"\207 \207" [op-list last-non-nil artist-get-last-non-nil-op] 3 (#$ . 31433)]) #@51 Find the first non-nil draw operation in OP-LIST. (defalias 'artist-get-first-non-nil-op #[(op-list) "@@\206\n \301A!\207" [op-list artist-get-first-non-nil-op] 2 (#$ . 31723)]) #@33 Check whether OP is in OP-LIST. (defalias 'artist-is-in-op-list-p #[(op op-list) "\205 @@\203 @@\230\206 \302 A\"\207" [op-list op artist-is-in-op-list-p] 3 (#$ . 31909)]) #@166 Build an assoc-list of OP-LIST. The arguments LAST-NON-NIL-ARG, FIRST-NON-NIL-ARG, PREV-ENTRY and PREV-OP-ARG are used when invoked recursively during the build-up. (defalias 'artist-make-prev-next-op-alist #[(op-list &optional last-non-nil-arg first-non-nil-arg prev-entry prev-op-arg) "\206 \306 !\206 \307 ! \206 \n\f @@\310!\211\f\311BB \2035 \203? \312 A\"\203M \313 A\n\f\f%\202v \203Y A\241\210 \203o \313 A\n\f%B\202v A\f\241\210\311.\207" [last-non-nil-arg artist-key-compl-table last-non-nil first-non-nil-arg first-non-nil prev-op-arg artist-get-last-non-nil-op artist-get-first-non-nil-op artist-mt-get-symbol-from-keyword nil artist-is-in-op-list-p artist-make-prev-next-op-alist prev-op op-list op opsym entry prev-entry] 8 (#$ . 32096)]) #@48 Cyclically select next drawing mode operation. (defalias 'artist-select-next-op-in-list #[nil "\303 \"AA\304\n!\210\305\306\n\")\207" [artist-curr-go artist-prev-next-op-alist next-op assoc artist-select-operation message "%s"] 3 (#$ . 32900) nil]) #@52 Cyclically select previous drawing mode operation. (defalias 'artist-select-prev-op-in-list #[nil "\303 \"A@\304\n!\210\305\306\n\")\207" [artist-curr-go artist-prev-next-op-alist prev-op assoc artist-select-operation message "%s"] 3 (#$ . 33157) nil]) #@91 Non-nil if Artist mode is enabled. Use the command `artist-mode' to change this variable. (defvar artist-mode nil (#$ . 33418)) (make-variable-buffer-local 'artist-mode) #@7582 Toggle Artist mode. With argument ARG, turn Artist mode on if ARG is positive. Artist lets you draw lines, squares, rectangles and poly-lines, ellipses and circles with your mouse and/or keyboard. How to quit Artist mode Type \[artist-mode-off] to quit artist-mode. How to submit a bug report Type \[artist-submit-bug-report] to submit a bug report. Drawing with the mouse: mouse-2 shift mouse-2 Pops up a menu where you can select what to draw with mouse-1, and where you can do some settings (described below). mouse-1 shift mouse-1 Draws lines, rectangles or poly-lines, erases, cuts, copies or pastes: Operation Not shifted Shifted -------------------------------------------------------------- Pen fill-char at point line from last point to new point -------------------------------------------------------------- Line Line in any direction Straight line -------------------------------------------------------------- Rectangle Rectangle Square -------------------------------------------------------------- Poly-line Poly-line in any dir Straight poly-lines -------------------------------------------------------------- Ellipses Ellipses Circles -------------------------------------------------------------- Text Text (see thru) Text (overwrite) -------------------------------------------------------------- Spray-can Spray-can Set size for spray -------------------------------------------------------------- Erase Erase character Erase rectangle -------------------------------------------------------------- Vaporize Erase single line Erase connected lines -------------------------------------------------------------- Cut Cut rectangle Cut square -------------------------------------------------------------- Copy Copy rectangle Copy square -------------------------------------------------------------- Paste Paste Paste -------------------------------------------------------------- Flood-fill Flood-fill Flood-fill -------------------------------------------------------------- * Straight lines can only go horizontally, vertically or diagonally. * Poly-lines are drawn while holding mouse-1 down. When you release the button, the point is set. If you want a segment to be straight, hold down shift before pressing the mouse-1 button. Click mouse-2 or mouse-3 to stop drawing poly-lines. * See thru for text means that text already in the buffer will be visible through blanks in the text rendered, while overwrite means the opposite. * Vaporizing connected lines only vaporizes lines whose _endpoints_ are connected. See also the variable `artist-vaporize-fuzziness'. * Cut copies, then clears the rectangle/square. * When drawing lines or poly-lines, you can set arrows. See below under ``Arrows'' for more info. * The mode line shows the currently selected drawing operation. In addition, if it has an asterisk (*) at the end, you are currently drawing something. * Be patient when flood-filling -- large areas take quite some time to fill. mouse-3 Erases character under pointer shift mouse-3 Erases rectangle Settings Set fill Sets the character used when filling rectangles/squares Set line Sets the character used when drawing lines Erase char Sets the character used when erasing Rubber-banding Toggles rubber-banding Trimming Toggles trimming of line-endings (that is: when the shape is drawn, extraneous white-space at end of lines is removed) Borders Toggles the drawing of line borders around filled shapes Drawing with keys \[artist-key-set-point] Does one of the following: For lines/rectangles/squares: sets the first/second endpoint For poly-lines: sets a point (use C-u \[artist-key-set-point] to set last point) When erase characters: toggles erasing When cutting/copying: Sets first/last endpoint of rect/square When pasting: Pastes \[artist-select-operation] Selects what to draw Move around with \[artist-next-line], \[artist-previous-line], \[artist-forward-char] and \[artist-backward-char]. \[artist-select-fill-char] Sets the character to use when filling \[artist-select-line-char] Sets the character to use when drawing \[artist-select-erase-char] Sets the character to use when erasing \[artist-toggle-rubber-banding] Toggles rubber-banding \[artist-toggle-trim-line-endings] Toggles trimming of line-endings \[artist-toggle-borderless-shapes] Toggles borders on drawn shapes Arrows \[artist-toggle-first-arrow] Sets/unsets an arrow at the beginning of the line/poly-line \[artist-toggle-second-arrow] Sets/unsets an arrow at the end of the line/poly-line Selecting operation There are some keys for quickly selecting drawing operations: \[artist-select-op-line] Selects drawing lines \[artist-select-op-straight-line] Selects drawing straight lines \[artist-select-op-rectangle] Selects drawing rectangles \[artist-select-op-square] Selects drawing squares \[artist-select-op-poly-line] Selects drawing poly-lines \[artist-select-op-straight-poly-line] Selects drawing straight poly-lines \[artist-select-op-ellipse] Selects drawing ellipses \[artist-select-op-circle] Selects drawing circles \[artist-select-op-text-see-thru] Selects rendering text (see thru) \[artist-select-op-text-overwrite] Selects rendering text (overwrite) \[artist-select-op-spray-can] Spray with spray-can \[artist-select-op-spray-set-size] Set size for the spray-can \[artist-select-op-erase-char] Selects erasing characters \[artist-select-op-erase-rectangle] Selects erasing rectangles \[artist-select-op-vaporize-line] Selects vaporizing single lines \[artist-select-op-vaporize-lines] Selects vaporizing connected lines \[artist-select-op-cut-rectangle] Selects cutting rectangles \[artist-select-op-copy-rectangle] Selects copying rectangles \[artist-select-op-paste] Selects pasting \[artist-select-op-flood-fill] Selects flood-filling Variables This is a brief overview of the different variables. For more info, see the documentation for the variables (type \[describe-variable] <variable> RET). artist-rubber-banding Interactively do rubber-banding or not artist-first-char What to set at first/second point... artist-second-char ...when not rubber-banding artist-interface-with-rect If cut/copy/paste should interface with rect artist-arrows The arrows to use when drawing arrows artist-aspect-ratio Character height-to-width for squares artist-trim-line-endings Trimming of line endings artist-flood-fill-right-border Right border when flood-filling artist-flood-fill-show-incrementally Update display while filling artist-pointer-shape Pointer shape to use while drawing artist-ellipse-left-char Character to use for narrow ellipses artist-ellipse-right-char Character to use for narrow ellipses artist-borderless-shapes If shapes should have borders artist-picture-compatibility Whether or not to be picture mode compatible artist-vaporize-fuzziness Tolerance when recognizing lines artist-spray-interval Seconds between repeated sprayings artist-spray-radius Size of the spray-area artist-spray-chars The spray-``color'' artist-spray-new-chars Initial spray-``color'' Hooks Turning the mode on or off runs `artist-mode-hook'. Keymap summary \{artist-mode-map} (defalias 'artist-mode #[(&optional arg) "\303 \304=\203 \n?\202 \305 !\306V\211\204 \307 \210\202! \310 \210\311\312\n\203+ \313\202, \314\"\210\315\316!\203M \303 \203@ \303 \232\203M \317\320\n\203J \321\202K \322\"\210)\323 \210\n\207" [#1=#:last-message arg artist-mode current-message toggle prefix-numeric-value 0 artist-mode-exit artist-mode-init run-hooks artist-mode-hook artist-mode-on-hook artist-mode-off-hook called-interactively-p any message "Artist mode %sabled" "en" "dis" force-mode-line-update] 4 (#$ . 33596) (list (or current-prefix-arg 'toggle))]) (byte-code "\301\302\303\304\211%\207" [artist-mode-map add-minor-mode artist-mode artist-mode-name nil] 6) #@64 Init Artist mode. This will call the hook `artist-mode-hook'. (defalias 'artist-mode-init #[nil "\306\211\307W\203 \211I\210T\211\202 ) \310\311I\210 \312\311I\210 \306\311I\210\313\302!\210\313\303!\210\313\304!\210\313\305!\210\313\314!\210\313\315!\210\313\316!\210\313\317!\210\313\320!\210\313\321!\210\313\322!\210\323\211\323\211\324 ! \325 !\326!\327\330\306\"\323\211\313\331!\210\332\333!!\f\"\203\226 #\334=\204\226 \334 \210\335\336!\210\337\n!\207" [i artist-replacement-table artist-key-is-drawing artist-key-endpoint1 artist-key-poly-point-list artist-key-shape 0 256 10 32 9 make-local-variable artist-key-draw-how artist-popup-menu-table artist-key-compl-table artist-prev-next-op-alist artist-rb-save-data artist-arrow-point-1 artist-arrow-point-2 nil artist-compute-popup-menu-table artist-compute-key-compl-table artist-make-prev-next-op-alist make-vector 7 next-line-add-newlines t artist-go-get-draw-how-from-symbol picture-mode message "" artist-mode-line-show-curr-operation artist-mt artist-curr-go artist-picture-compatibility major-mode] 4 (#$ . 41870)]) #@64 Exit Artist mode. This will call the hook `artist-mode-hook'. (defalias 'artist-mode-exit #[nil "\203 \302=\203 \303 \210\304\305!\207" [artist-picture-compatibility major-mode picture-mode picture-mode-exit kill-local-variable next-line-add-newlines] 2 (#$ . 42991)]) #@23 Turn Artist mode off. (defalias 'artist-mode-off #[nil "\300\301!\210\302 \207" [artist-mode -1 force-mode-line-update] 2 (#$ . 43271) nil]) #@22 Repaint the display. (defalias 'artist-update-display #[nil "\300\301!\207" [sit-for 0] 2 (#$ . 43418)]) #@65 Show current operation in mode-line. If IS-DRAWING, show that. (defalias 'artist-mode-line-show-curr-operation #[(is-drawing) "\305\306 !\n\203 \307\202 \310R\311\f\236C\241\210)\312 \207" [artist-mode-name artist-curr-go is-drawing mtext minor-mode-alist "/" artist-go-get-mode-line-from-symbol "/*" "" artist-mode force-mode-line-update] 4 (#$ . 43529)]) #@58 Return the value of the variable `artist-fill-char-set'. (defalias 'artist-t-if-fill-char-set #[nil "\207" [artist-fill-char-set] 1 (#$ . 43898)]) #@18 Always return t. (defalias 'artist-t #[nil "\300\207" [t] 1 (#$ . 44052)]) #@20 Always return nil. (defalias 'artist-nil #[nil "\300\207" [nil] 1 (#$ . 44133)]) #@20 Say yes to arrows! (defalias 'artist-arrows #[nil "\300\207" [t] 1 (#$ . 44220)]) #@19 Say no to arrows! (defalias 'artist-no-arrows #[nil "\300\207" [nil] 1 (#$ . 44308)]) #@101 Create a menu from MENU-TABLE data. The returned value is suitable for the `x-popup-menu' function. (defalias 'artist-compute-popup-menu-table #[(menu-table) "\301\302!B\207" [menu-table "Artist menu" artist-compute-popup-menu-table-sub] 3 (#$ . 44401)]) #@70 Compute operation table suitable for `x-popup-menu' from MENU-TABLE. (defalias 'artist-compute-popup-menu-table-sub #[(menu-table) "\301\302\"\207" [menu-table mapcar #[(element) "\306!\211\307=\203. \310!\211\211\311\234)\n\211\312\234\311\234)\211\211\312\234),D\202\204 \313=\203Q \310!\211\211\311\234)\n\211\312\234)+D\202\204 \314=\203[ \315\202\204 \316=\203\200 \310!\211\211\311\234)\n\211\312\234)\317!+B\202\204 \320\321 \")\207" [element element-tag info-part descr unshifted info-variant-part artist-mt-get-tag graphics-operation artist-mt-get-info-part 0 1 function-call separator (#1="" #1#) menu artist-compute-popup-menu-table-sub error "Internal error: unknown element-tag: \"%s\"" symbol keyword title items] 4]] 3 (#$ . 44663)]) #@75 Compute completion table from MENU-TABLE, suitable for `completing-read'. (defalias 'artist-compute-key-compl-table #[(menu-table) "\301\302\303\304\305\306\"\"\"\207" [menu-table apply nconc remq nil mapcar #[(element) "\306!\211\307=\203; \310!\211\211\311\234\312\234)\n\211\311\234\311\234)\211\312\234)\f\211\312\234)C-CD\202V \313=\203U \310!\211\211\311\234)\314!*\202V \315)\207" [element element-tag info-part unshifted shifted info-variant-part artist-mt-get-tag graphics-operation artist-mt-get-info-part 1 0 menu artist-compute-key-compl-table nil unshifted-kwd shifted-kwd items] 3]] 7 (#$ . 45460)]) #@60 Search master table for keyword KWD and return its symbol. (defalias 'artist-mt-get-symbol-from-keyword #[(kwd) "\302 \"\207" [artist-mt kwd artist-mt-get-symbol-from-keyword-sub] 3 (#$ . 46108)]) #@53 Search TABLE for keyword KWD and return its symbol. (defalias 'artist-mt-get-symbol-from-keyword-sub #[(table kwd) "\300\301\215\207" [found (byte-code "\301\302\"\210\303\207" [table mapc #[(element) "\306!\211\307=\203` \310!\211\211\311\234\312\234)\n\211\311\234\311\234)\211\312\234)\f\211\312\234)\211\311\234)\f\211\311\234)\230\203N \313\314\"\210\230\205[ \313\314\".\202\263 \315=\203\213 \310!\211\211\312\234)\n\211\311\234)\230\205\207 \313\314\"+\202\263 \316=\203\262 \310!\211\211\311\234)\317\"\211\205\256 \313\314\"+\202\263 \320)\207" [element element-tag info-part unshifted shifted info-variant-part artist-mt-get-tag graphics-operation artist-mt-get-info-part 1 0 throw found function-call menu artist-mt-get-symbol-from-keyword-sub nil unshifted-kwd shifted-kwd unshifted-sym shifted-sym kwd keyword symbol items answer] 4] nil] 3)] 2 (#$ . 46312)]) #@138 Search the master table for a graphics operation SYMBOL. Calls RETRIEVE-FN to retrieve information from that symbol's info-variant-part. (defalias 'artist-go-retrieve-from-symbol #[(symbol retrieve-fn) "\303 \n#\207" [artist-mt symbol retrieve-fn artist-go-retrieve-from-symbol-sub] 4 (#$ . 47258)]) #@131 Search the TABLE for a graphics operation SYMBOL. Calls RETRIEVE-FN to retrieve information from that symbol's info-variant-part. (defalias 'artist-go-retrieve-from-symbol-sub #[(table symbol retrieve-fn) "\300\301\215\207" [found (byte-code "\301\302\"\210\303\207" [table mapc #[(element) "\306!\211\307=\203\\ \310!\211\211\311\234\312\234)\n\211\311\234\311\234)\211\311\234)\f\211\311\234)=\203<