view doc/lispintro/drawers.eps @ 110305:b10051866f51

New syntax-propertize functionality. * lisp/font-lock.el (font-lock-syntactic-keywords): Make obsolete. (font-lock-fontify-syntactic-keywords-region): Move handling of font-lock-syntactically-fontified to... (font-lock-default-fontify-region): ...here. Let syntax-propertize-function take precedence. (font-lock-fontify-syntactically-region): Cal syntax-propertize. * lisp/emacs-lisp/regexp-opt.el (regexp-opt-depth): Skip named groups. * lisp/emacs-lisp/syntax.el (syntax-propertize-function) (syntax-propertize-chunk-size, syntax-propertize--done) (syntax-propertize-extend-region-functions): New vars. (syntax-propertize-wholelines, syntax-propertize-multiline) (syntax-propertize--shift-groups, syntax-propertize-via-font-lock) (syntax-propertize): New functions. (syntax-propertize-rules): New macro. (syntax-ppss-flush-cache): Set syntax-propertize--done. (syntax-ppss): Call syntax-propertize. * lisp/progmodes/ada-mode.el (ada-set-syntax-table-properties) (ada-after-change-function, ada-initialize-syntax-table-properties) (ada-handle-syntax-table-properties): Only define when syntax-propertize is not available. (ada-mode): Use syntax-propertize-function. * lisp/progmodes/autoconf.el (autoconf-mode): Use syntax-propertize-function. (autoconf-font-lock-syntactic-keywords): Remove. * lisp/progmodes/cfengine.el (cfengine-mode): Use syntax-propertize-function. (cfengine-font-lock-syntactic-keywords): Remove. * lisp/progmodes/cperl-mode.el (cperl-mode): Use syntax-propertize-function. * lisp/progmodes/fortran.el (fortran-mode): Use syntax-propertize-function. (fortran--font-lock-syntactic-keywords): New var. (fortran-line-length): Update syntax-propertize-function and fortran--font-lock-syntactic-keywords. * lisp/progmodes/gud.el (gdb-script-syntax-propertize-function): New var; replaces gdb-script-font-lock-syntactic-keywords. (gdb-script-mode): Use it. * lisp/progmodes/js.el (js--regexp-literal): Define while compiling. (js-syntax-propertize-function): New var; replaces js-font-lock-syntactic-keywords. (js-mode): Use it. * lisp/progmodes/make-mode.el (makefile-syntax-propertize-function): New var; replaces makefile-font-lock-syntactic-keywords. (makefile-mode): Use it. (makefile-imake-mode): Adjust. * lisp/progmodes/mixal-mode.el (mixal-syntax-propertize-function): New var; replaces mixal-font-lock-syntactic-keywords. (mixal-mode): Use it. * lisp/progmodes/octave-mod.el (octave-syntax-propertize-sqs): New function to replace octave-font-lock-close-quotes. (octave-syntax-propertize-function): New function to replace octave-font-lock-syntactic-keywords. (octave-mode): Use it. * lisp/progmodes/perl-mode.el (perl-syntax-propertize-function): New fun to replace perl-font-lock-syntactic-keywords. (perl-syntax-propertize-special-constructs): New fun to replace perl-font-lock-special-syntactic-constructs. (perl-font-lock-syntactic-face-function): New fun. (perl-mode): Use it. * lisp/progmodes/python.el (python-syntax-propertize-function): New var to replace python-font-lock-syntactic-keywords. (python-mode): Use it. (python-quote-syntax): Simplify and adjust to new use. * lisp/progmodes/ruby-mode.el (ruby-here-doc-beg-re): Define while compiling. (ruby-here-doc-end-re, ruby-here-doc-beg-match) (ruby-font-lock-syntactic-keywords, ruby-comment-beg-syntax) (syntax-ppss, ruby-in-ppss-context-p, ruby-in-here-doc-p) (ruby-here-doc-find-end, ruby-here-doc-beg-syntax) (ruby-here-doc-end-syntax): Only define when syntax-propertize is not available. (ruby-syntax-propertize-function, ruby-syntax-propertize-heredoc): New functions. (ruby-in-ppss-context-p): Update to new syntax of heredocs. (electric-indent-chars): Silence bytecompiler. (ruby-mode): Use prog-mode, syntax-propertize-function, and electric-indent-chars. * lisp/progmodes/sh-script.el (sh-st-symbol): Remove. (sh-font-lock-close-heredoc, sh-font-lock-open-heredoc): Add eol arg. (sh-font-lock-flush-syntax-ppss-cache, sh-font-lock-here-doc): Remove. (sh-font-lock-quoted-subshell): Assume we've already matched $(. (sh-font-lock-paren): Set syntax-multiline. (sh-font-lock-syntactic-keywords): Remove. (sh-syntax-propertize-function): New function to replace it. (sh-mode): Use it. * lisp/progmodes/simula.el (simula-syntax-propertize-function): New var to replace simula-font-lock-syntactic-keywords. (simula-mode): Use it. * lisp/progmodes/tcl.el (tcl-syntax-propertize-function): New var to replace tcl-font-lock-syntactic-keywords. (tcl-mode): Use it. * lisp/progmodes/vhdl-mode.el (vhdl-mode): Use syntax-propertize-function if available. (vhdl-fontify-buffer): Adjust. * lisp/textmodes/bibtex.el (bibtex-mode): Use syntax-propertize-function. * lisp/textmodes/reftex.el (font-lock-syntactic-keywords): Don't declare since we don't use it. * lisp/textmodes/sgml-mode.el (sgml-syntax-propertize-function): New var to replace sgml-font-lock-syntactic-keywords. (sgml-mode): Use it. * lisp/textmodes/tex-mode.el (tex-common-initialization, doctex-mode): Use syntax-propertize-function. * lisp/textmodes/texinfo.el (texinfo-syntax-propertize-function): New fun to replace texinfo-font-lock-syntactic-keywords. (texinfo-mode): Use it. * test/indent/octave.m: Remove some `fixindent' not needed any more.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Sat, 11 Sep 2010 01:13:42 +0200
parents 1d1d5d9bd884
children 376148b31b5e
line wrap: on
line source

%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 34 577 324 778
%%Title: chest-of-drawers-diagram-new
%%CreationDate: Fri Sep 14 17:40:57 2001
%%Creator: Tgif-4.1.35 by William Chia-Wei Cheng (william@cs.UCLA.edu)
%%ProducedBy: (unknown)
%%Pages: 1
%%DocumentFonts: (atend)
%%EndComments
%%BeginProlog

% Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
%   Free Software Foundation, Inc.
%
% This file is part of GNU Emacs.
%
% GNU Emacs is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.
%
% GNU Emacs is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.

/tgifdict 53 dict def
tgifdict begin

/tgifellipsedict 6 dict def
tgifellipsedict /mtrx matrix put

/TGEL % tgifellipse
 { tgifellipsedict begin
      /yrad exch def
      /xrad exch def
      /y exch def
      /x exch def
      /savematrix mtrx currentmatrix def
      x y translate
      xrad yrad scale
      0 0 1 0 360 arc
      savematrix setmatrix
   end
 } def

/TGMAX
 { exch dup 3 1 roll exch dup 3 1 roll gt { pop } { exch pop } ifelse
 } def
/TGMIN
 { exch dup 3 1 roll exch dup 3 1 roll lt { pop } { exch pop } ifelse
 } def
/TGSW { stringwidth pop } def

/bd { bind def } bind def

/GS { gsave } bd
/GR { grestore } bd
/NP { newpath } bd
/CP { closepath } bd
/CHP { charpath } bd
/CT { curveto } bd
/L { lineto } bd
/RL { rlineto } bd
/M { moveto } bd
/RM { rmoveto } bd
/S { stroke } bd
/F { fill } bd
/TR { translate } bd
/RO { rotate } bd
/SC { scale } bd
/MU { mul } bd
/DI { div } bd
/DU { dup } bd
/NE { neg } bd
/AD { add } bd
/SU { sub } bd
/PO { pop } bd
/EX { exch } bd
/CO { concat } bd
/CL { clip } bd
/EC { eoclip } bd
/EF { eofill } bd
/IM { image } bd
/IMM { imagemask } bd
/ARY { array } bd
/SG { setgray } bd
/RG { setrgbcolor } bd
/SD { setdash } bd
/W { setlinewidth } bd
/SM { setmiterlimit } bd
/SLC { setlinecap } bd
/SLJ { setlinejoin } bd
/SH { show } bd
/FF { findfont } bd
/MS { makefont setfont } bd
/AR { arcto 4 {pop} repeat } bd
/CURP { currentpoint } bd
/FLAT { flattenpath strokepath clip newpath } bd
/TGSM { tgiforigctm setmatrix } def
/TGRM { savematrix setmatrix } def

end

%%EndProlog
%%Page: 1 1

%%PageBoundingBox: 34 577 324 778
tgifdict begin
/tgifsavedpage save def

1 SM
1 W

0 SG

72 0 MU 72 11 MU TR
72 128 DI 100.000 MU 100 DI DU NE SC

GS

/tgiforigctm matrix currentmatrix def

% BOX
0 SG
GS
   10 SM
   GS
      NP 64 104 M 255 104 L 255 360 L 64 360 L CP
      S
   GR
GR

% POLY/OPEN-SPLINE
0 SG
GS
   NP
      65 296 M
      254 296 L
   TGSM
   1 W
   S
GR

% POLY/OPEN-SPLINE
0 SG
GS
   NP
      63 233 M
      255 233 L
   TGSM
   1 W
   S
GR

% POLY/OPEN-SPLINE
0 SG
GS
   NP
      63 169 M
      255 169 L
   TGSM
   1 W
   S
GR

% POLY/OPEN-SPLINE
0 SG
GS
   NP
      251 362 M
      251 361 L
      251 379 L
      244 379 L
      229 361 L
   TGSM
   1 W
   S
GR

% OVAL
0 SG
GS
   GS
      NP 160 72 10 6 TGEL
      S
   GR
GR

% POLY/OPEN-SPLINE
0 SG
GS
   NP
      63 104 M
      128 64 L
      138 69 L
   TGSM
   1 W
   S
GR

% POLY/OPEN-SPLINE
0 SG
GS
   NP
      255 103 M
      190 63 L
      180 68 L
   TGSM
   1 W
   S
GR

% TEXT
NP
0 SG
   GS
      1 W
      160 152 M
      GS
        GS
        0
            /Courier FF [17 0 0 -17 0 0] MS
            (symbol name) TGSW 
        AD
        GR
      2 DI NE 0 RM
            0 SG
            /Courier FF [17 0 0 -17 0 0] MS
            (symbol name) SH
      GR
   GR

% TEXT
NP
0 SG
   GS
      1 W
      160 41 M
      GS
        GS
        0
            /Courier FF [17 0 0 -17 0 0] MS
            (Chest of Drawers) TGSW 
        AD
        GR
      2 DI NE 0 RM
            0 SG
            /Courier FF [17 0 0 -17 0 0] MS
            (Chest of Drawers) SH
      GR
   GR

% TEXT
NP
0 SG
   GS
      1 W
      344 41 M
      GS
            0 SG
            /Courier FF [17 0 0 -17 0 0] MS
            (Contents of Drawers) SH
      GR
   GR

% TEXT
NP
0 SG
   GS
      1 W
      344 160 M
      GS
            0 SG
            /Courier FF [17 0 0 -17 0 0] MS
            (bouquet) SH
      GR
   GR

% TEXT
NP
0 SG
   GS
      1 W
      344 220 M
      GS
            0 SG
            /Courier FF [17 0 0 -17 0 0] MS
            ([none]) SH
      GR
   GR

% TEXT
NP
0 SG
   GS
      1 W
      344 279 M
      GS
            0 SG
            /Courier FF [17 0 0 -17 0 0] MS
            (\(rose violet buttercup\)) SH
      GR
   GR

% TEXT
NP
0 SG
   GS
      1 W
      344 337 M
      GS
            0 SG
            /Courier FF [17 0 0 -17 0 0] MS
            ([not described here]) SH
      GR
   GR

% POLY/OPEN-SPLINE
0 SG
GS
   NP
      68 362 M
      68 361 L
      68 379 L
      75 379 L
      90 361 L
   TGSM
   1 W
   S
GR

% TEXT
NP
0 SG
   GS
      1 W
      158 132 M
      GS
        GS
        0
            /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
            (directions to) TGSW 
        AD
        GR
      2 DI NE 0 RM
            0 SG
            /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
            (directions to) SH
      GR
   GR

% TEXT
NP
0 SG
   GS
      1 W
      345 139 M
      GS
            0 SG
            /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
            (map to) SH
      GR
   GR

% TEXT
NP
0 SG
   GS
      1 W
      350 259 M
      GS
            0 SG
            /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
            (map to) SH
      GR
   GR

% TEXT
NP
0 SG
   GS
      1 W
      159 213 M
      GS
        GS
        0
            /Courier FF [17 0 0 -17 0 0] MS
            (symbol definition) TGSW 
        AD
        GR
      2 DI NE 0 RM
            0 SG
            /Courier FF [17 0 0 -17 0 0] MS
            (symbol definition) SH
      GR
   GR

% TEXT
NP
0 SG
   GS
      1 W
      159 195 M
      GS
        GS
        0
            /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
            (directions to) TGSW 
        AD
        GR
      2 DI NE 0 RM
            0 SG
            /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
            (directions to) SH
      GR
   GR

% TEXT
NP
0 SG
   GS
      1 W
      160 276 M
      GS
        GS
        0
            /Courier FF [17 0 0 -17 0 0] MS
            (variable name) TGSW 
        AD
        GR
      2 DI NE 0 RM
            0 SG
            /Courier FF [17 0 0 -17 0 0] MS
            (variable name) SH
      GR
   GR

% TEXT
NP
0 SG
   GS
      1 W
      158 260 M
      GS
        GS
        0
            /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
            (directions to) TGSW 
        AD
        GR
      2 DI NE 0 RM
            0 SG
            /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
            (directions to) SH
      GR
   GR

% TEXT
NP
0 SG
   GS
      1 W
      160 339 M
      GS
        GS
        0
            /Courier FF [17 0 0 -17 0 0] MS
            (property list) TGSW 
        AD
        GR
      2 DI NE 0 RM
            0 SG
            /Courier FF [17 0 0 -17 0 0] MS
            (property list) SH
      GR
   GR

% TEXT
NP
0 SG
   GS
      1 W
      158 323 M
      GS
        GS
        0
            /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
            (directions to) TGSW 
        AD
        GR
      2 DI NE 0 RM
            0 SG
            /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
            (directions to) SH
      GR
   GR

GR
tgifsavedpage restore
end
showpage

%%Trailer
%MatchingCreationDate: Fri Sep 14 17:40:57 2001
%%DocumentFonts: NewCenturySchlbk-Roman
%%+ Courier
%%EOF