mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-02-03 20:24:29 +00:00
Merged from emacs@sv.gnu.org
Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-289 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-290 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-291 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-292 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-293 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-567
This commit is contained in:
commit
40a1b46245
@ -1,3 +1,7 @@
|
||||
2006-05-21 Chong Yidong <cyd@mit.edu>
|
||||
|
||||
* FOR-RELEASE: point-entered /point-left bug fixed.
|
||||
|
||||
2006-05-12 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* FOR-RELEASE: Spell-checking the manuals is now done; remove the
|
||||
|
@ -29,12 +29,11 @@ and KDE projects, to use the new Emacs icons in etc/images/icons.
|
||||
** We need a way a Lisp file encoded in iso-2022 can assure
|
||||
reliable decoding regardless of user options.
|
||||
|
||||
** Clean up MUSTBENEW in Fcopy_file.
|
||||
|
||||
** JD Smith's 17 Apr 2006 bug report that CVS operations
|
||||
get mysterious unreproducible failures.
|
||||
|
||||
** David Hansen's bug report on 16 Apr 2006 about point-entered and
|
||||
point-left text properties.
|
||||
|
||||
** Is there a basic problem with cl-byte-compile-compiler-macro?
|
||||
|
||||
** Markus Gritsch's report about Emacs looping on Windoze with the following
|
||||
|
@ -1,3 +1,44 @@
|
||||
2006-05-20 Rodrigo Real <rreal@ucpel.tche.br>
|
||||
|
||||
* pt-br-refcard.tex: Update.
|
||||
|
||||
2006-05-23 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* pl-refcard.tex (Local variables): Add compile-command.
|
||||
|
||||
* ru-refcard.tex (Local variables): Add compile-command and
|
||||
coding.
|
||||
|
||||
* pt-br-refcard.tex: Don't \input psfig.
|
||||
|
||||
* refcard.tex (section{Info}): Add `i'. Use `s' instead of `M-s'.
|
||||
|
||||
* de-refcard.tex (section{Info}): Ditto.
|
||||
|
||||
* fr-refcard.tex (section{Info}): Ditto. Translation suggested by
|
||||
Stefan Monnier <monnier@iro.umontreal.ca>.
|
||||
|
||||
* pl-refcard.tex (section{Info}): Ditto. Translation suggested by
|
||||
Slawomir Nowaczyk <slawomir.nowaczyk.847@student.lu.se>.
|
||||
|
||||
* cs-refcard.tex (section{Info}): Use `s' instead of `M-s'. Entry
|
||||
for `i' is not translated yet.
|
||||
|
||||
* pt-br-refcard.tex (section{Info}): Ditto.
|
||||
|
||||
* ru-refcard.tex (section{Info}): Ditto.
|
||||
|
||||
* sk-refcard.tex (section{Info}): Ditto.
|
||||
|
||||
2006-05-22 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* MORE.STUFF: Update AUCTeX entry.
|
||||
|
||||
2006-05-20 Rodrigo Real <rreal@ucpel.tche.br>
|
||||
|
||||
* pt-br-refcard.tex:
|
||||
* pt-br-refcard.ps: New files.
|
||||
|
||||
2006-05-15 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* sk-refcard.tex: Add coding cookie.
|
||||
|
@ -117,9 +117,9 @@ the future.
|
||||
You might like to check whether they are packaged for your system.
|
||||
Several are for Debian GNU/Linux in particular.
|
||||
|
||||
* AUCTeX: fancy (La)TeX support: <URL:http://www.gnu.org/software/auctex/>
|
||||
There's an AUCTeX mail list/newsgroup:
|
||||
<URL:news://sunsite.dk/emacs.auctex>.
|
||||
* AUCTeX: <URL:http://www.gnu.org/software/auctex/>
|
||||
An extensible package that supports writing and formatting TeX
|
||||
files (including AMS-TeX, LaTeX, Texinfo, ConTeXt, and docTeX).
|
||||
|
||||
* BBDB: personal Info Rolodex integrated with mail/news:
|
||||
<URL:http://bbdb.sourceforge.net/>
|
||||
|
73
etc/NEWS
73
etc/NEWS
@ -1,4 +1,4 @@
|
||||
GNU Emacs NEWS -- history of user-visible changes. 2003-05-21
|
||||
GNU Emacs NEWS -- history of user-visible changes. 2006-05-21
|
||||
Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
|
||||
Free Software Foundation, Inc.
|
||||
See the end for copying conditions.
|
||||
@ -71,6 +71,12 @@ with simplified and traditional characters), French, and Italian.
|
||||
Type `C-u C-h t' to choose one of them in case your language setup
|
||||
doesn't automatically select the right one.
|
||||
|
||||
---
|
||||
** A Portuguese translation of Emacs' reference card has been added.
|
||||
Its name is `pt-br-refcard.tex'. The corresponding PostScript file is
|
||||
also included.
|
||||
|
||||
|
||||
---
|
||||
** A French translation of the `Emacs Survival Guide' is available.
|
||||
|
||||
@ -1292,6 +1298,10 @@ with different file attributes in two dired buffers.
|
||||
*** New Dired command `dired-do-touch' (bound to T) changes timestamps
|
||||
of marked files with the value entered in the minibuffer.
|
||||
|
||||
+++
|
||||
*** The Dired command `dired-goto-file' is now bound to j, not M-g.
|
||||
This is to avoid hiding the global key binding of M-g.
|
||||
|
||||
+++
|
||||
*** In Dired's ! command (dired-do-shell-command), `*' and `?' now
|
||||
control substitution of the file names only when they are surrounded
|
||||
@ -1301,8 +1311,8 @@ double quotes make no difference in the shell, but they prevent
|
||||
special treatment in `dired-do-shell-command'.
|
||||
|
||||
+++
|
||||
*** In Dired, the w command now copies the current line's file name
|
||||
into the kill ring. With a zero prefix arg, copies absolute file names.
|
||||
*** In Dired, the w command now stores the current line's file name
|
||||
into the kill ring. With a zero prefix arg, it stores the absolute file name.
|
||||
|
||||
+++
|
||||
*** In Dired-x, Omitting files is now a minor mode, dired-omit-mode.
|
||||
@ -1982,12 +1992,18 @@ subprocess are controlled by the user options `scheme-trace-command',
|
||||
`scheme-untrace-command' and `scheme-expand-current-form'.
|
||||
|
||||
---
|
||||
** Makefile mode has submodes for automake, gmake, makepp, BSD make and imake.
|
||||
** Changes in Makefile mode
|
||||
|
||||
*** Makefile mode has submodes for automake, gmake, makepp, BSD make and imake.
|
||||
|
||||
The former two couldn't be differentiated before, and the latter three
|
||||
are new. Font-locking is robust now and offers new customizable
|
||||
faces.
|
||||
|
||||
*** The variable `makefile-query-one-target-method' has been renamed
|
||||
to `makefile-query-one-target-method-function'. The old name is still
|
||||
available as alias.
|
||||
|
||||
+++
|
||||
** In Outline mode, `hide-body' no longer hides lines at the top
|
||||
of the file that precede the first header line.
|
||||
@ -2603,6 +2619,10 @@ i.e., there is always a closing tag.
|
||||
By default, its setting is inferred on a buffer-by-buffer basis
|
||||
from the file name or buffer contents.
|
||||
|
||||
*** The variable `sgml-transformation' has been renamed to
|
||||
`sgml-transformation-function'. The old name is still available as
|
||||
alias.
|
||||
|
||||
+++
|
||||
*** `xml-mode' is now an alias for `sgml-mode', which has XML support.
|
||||
|
||||
@ -2680,6 +2700,10 @@ extracting the content of a BibTeX field.
|
||||
`bibtex-autokey-titleword-case-convert-function'. The old names are
|
||||
still available as aliases.
|
||||
|
||||
** In Artist mode the variable `artist-text-renderer' has been
|
||||
renamed to `artist-text-renderer-function'. The old name is still
|
||||
available as alias.
|
||||
|
||||
+++
|
||||
** In Enriched mode, `set-left-margin' and `set-right-margin' are now
|
||||
by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l'
|
||||
@ -3291,7 +3315,9 @@ C-x C-f passes the file name to `find-file' with non-nil WILDCARDS
|
||||
argument, which visits multiple files, and C-x d passes it to `dired'.
|
||||
|
||||
---
|
||||
** In skeleton.el, `-' marks the `skeleton-point' without interregion interaction.
|
||||
** Changes in Skeleton
|
||||
|
||||
*** In skeleton.el, `-' marks the `skeleton-point' without interregion interaction.
|
||||
|
||||
`@' has reverted to only setting `skeleton-positions' and no longer
|
||||
sets `skeleton-point'. Skeletons which used @ to mark
|
||||
@ -3299,6 +3325,12 @@ sets `skeleton-point'. Skeletons which used @ to mark
|
||||
updated `skeleton-insert' docstring explains these new features along
|
||||
with other details of skeleton construction.
|
||||
|
||||
*** The variables `skeleton-transformation', `skeleton-filter', and
|
||||
`skeleton-pair-filter' have been renamed to
|
||||
`skeleton-transformation-function', `skeleton-filter-function', and
|
||||
`skeleton-pair-filter-function'. The old names are still available
|
||||
as aliases.
|
||||
|
||||
---
|
||||
** Hideshow mode changes
|
||||
|
||||
@ -3555,6 +3587,25 @@ deleting the part of subprocess output that matches the input.
|
||||
+++
|
||||
** The variable `memory-full' now remains t until
|
||||
there is no longer a shortage of memory.
|
||||
|
||||
** The ewoc package no longer inserts a newline after each pretty-printed
|
||||
entry and after the header and footer, to allow for multiple-entry ewocs to
|
||||
display on a single line.
|
||||
|
||||
To make pre-existing client code behave the same way as before, you must
|
||||
arrange to insert a newline in three places: the pretty-printer function,
|
||||
the header and the footer. It is anyway a good idea to specify a non-empty
|
||||
footer so that markers after the ewoc's buffer text are properly updated.
|
||||
For example:
|
||||
|
||||
;; before
|
||||
(defun PP (data) (insert (format "%S" data)))
|
||||
(ewoc-create 'PP "start\n")
|
||||
|
||||
;; now
|
||||
(defun PP (data) (insert (format "%S\n" data)))
|
||||
(ewoc-create 'PP "start\n\n" "\n")
|
||||
|
||||
|
||||
* Lisp Changes in Emacs 22.1
|
||||
|
||||
@ -7109,6 +7160,10 @@ end of the buffer.
|
||||
|
||||
*** Spell checking now works in the MS-DOS version of Emacs.
|
||||
|
||||
*** The variable `ispell-format-word' has been renamed to
|
||||
`ispell-format-word-function'. The old name is still available as
|
||||
alias.
|
||||
|
||||
** Makefile mode changes
|
||||
|
||||
*** The mode now uses the abbrev table `makefile-mode-abbrev-table'.
|
||||
@ -7661,9 +7716,15 @@ mode `iswitchb-mode'.
|
||||
If you have `(require 'msb)' in your .emacs, please replace it with
|
||||
`(msb-mode 1)'.
|
||||
|
||||
** Flyspell mode has various new options. See the `flyspell' Custom
|
||||
** Changes in Flyspell mode
|
||||
|
||||
*** Flyspell mode has various new options. See the `flyspell' Custom
|
||||
group.
|
||||
|
||||
*** The variable `flyspell-generic-check-word-p' has been renamed
|
||||
to `flyspell-generic-check-word-predicate'. The old name is still
|
||||
available as alias.
|
||||
|
||||
** The user option `backward-delete-char-untabify-method' controls the
|
||||
behavior of `backward-delete-char-untabify'. The following values
|
||||
are recognized:
|
||||
|
@ -591,8 +591,9 @@ Pohyb mezi uzly:
|
||||
Dal¹í:
|
||||
|
||||
\key{spustit {\bf tutoriál} k~Info}{h}
|
||||
\key{{\bf ukonèit} Info}{q}
|
||||
% \key{look up a subject in the indices}{i} % FIXME
|
||||
\key{prohledat uzly na øetìzec}{M-s}
|
||||
\key{{\bf ukonèit} Info}{q}
|
||||
|
||||
\endindentedkeys
|
||||
|
||||
|
@ -563,9 +563,9 @@ Bewegung zwischen Knoten:
|
||||
Sonstige:
|
||||
|
||||
\key{Info {\bf Tutorial} starten}{h}
|
||||
\key{Info Befehle zeigen}{?}
|
||||
\key{Begriff in den Indices suchen}{i}
|
||||
\key{Knoten nach reg. Ausd. durchsuchen}{s}
|
||||
\key{Info {\bf verlassen} }{q}
|
||||
\key{Knoten nach reg. Ausd. durchsuchen}{M-s}
|
||||
|
||||
\endindentedkeys
|
||||
|
||||
|
@ -588,8 +588,9 @@ Passer de n\oe{}ud en n\oe{}ud :
|
||||
Autres :
|
||||
|
||||
\key{lancer le {\bf didacticiel} Info}{h}
|
||||
\key{chercher dans l'index}{i}
|
||||
\key{rechercher les n\oe{}uds avec une expression rationnelle}{s}
|
||||
\key{{\bf quitter} Info}{q}
|
||||
\key{rechercher les n\oe{}uds avec une expression rationnelle}{M-s}
|
||||
|
||||
\endindentedkeys
|
||||
|
||||
|
@ -898,9 +898,10 @@ Pozosta/le polecenia:
|
||||
%\key{{\bf quit} Info}{q}
|
||||
%\key{search nodes for regexp}{M-s}
|
||||
\key{wywo/laj {\bf samouczek} Info}{h}
|
||||
\key{{\bf zako/ncz} Info}{q}
|
||||
\key{wyszukaj zagadnienie w indeksach}{i}
|
||||
\key{wyszukuj w~w/ez/lach tekst zgodny\newline
|
||||
z~podanym wyra/zeniem regularnym}{M-s}
|
||||
z~podanym wyra/zeniem regularnym}{s}
|
||||
\key{{\bf zako/ncz} Info}{q}
|
||||
|
||||
\endindentedkeys
|
||||
|
||||
@ -990,5 +991,9 @@ przez wywo/lanie \kbd{C-h f interactive}.
|
||||
\copyrightnotice
|
||||
|
||||
\bye
|
||||
|
||||
% Local variables:
|
||||
% compile-command: "tex pl-refcard"
|
||||
% End:
|
||||
|
||||
% arch-tag: 19d15a16-70be-40c8-ad91-88899aac32a9
|
||||
|
2527
etc/pt-br-refcard.ps
Normal file
2527
etc/pt-br-refcard.ps
Normal file
File diff suppressed because it is too large
Load Diff
686
etc/pt-br-refcard.tex
Normal file
686
etc/pt-br-refcard.tex
Normal file
@ -0,0 +1,686 @@
|
||||
% Reference Card for GNU Emacs version 22 on Unix systems
|
||||
%**start of header
|
||||
\newcount\columnsperpage
|
||||
\newcount\letterpaper
|
||||
|
||||
% This file can be printed with 1, 2, or 3 columns per page (see below).
|
||||
% Specify how many you want here.
|
||||
|
||||
\columnsperpage=3
|
||||
|
||||
% Set letterpapaer to 0 for A4 paper, 1 for letter (US) paper. Useful
|
||||
% only when columnsperpage is 2 or 3.
|
||||
|
||||
\letterpaper=0
|
||||
|
||||
% Nothing else needs to be changed below this line.
|
||||
% Copyright (C) 1987, 1993, 1996, 1997, 2002, 2003, 2004,
|
||||
% 2006 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 2, 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; see the file COPYING. If not, write to
|
||||
% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
% Boston, MA 02110-1301, USA.
|
||||
|
||||
% This file is intended to be processed by plain TeX (TeX82).
|
||||
%
|
||||
% The final reference card has six columns, three on each side.
|
||||
% This file can be used to produce it in any of three ways:
|
||||
% 1 column per page
|
||||
% produces six separate pages, each of which needs to be reduced to 80%.
|
||||
% This gives the best resolution.
|
||||
% 2 columns per page
|
||||
% produces three already-reduced pages.
|
||||
% You will still need to cut and paste.
|
||||
% 3 columns per page
|
||||
% produces two pages which must be printed sideways to make a
|
||||
% ready-to-use 8.5 x 11 inch reference card.
|
||||
% For this you need a dvi device driver that can print sideways.
|
||||
% Which mode to use is controlled by setting \columnsperpage above.
|
||||
%
|
||||
% To compile and print this document:
|
||||
% tex refcard.tex
|
||||
% dvips -t landscape refcard.dvi
|
||||
%
|
||||
% Author:
|
||||
% Stephen Gildea
|
||||
% Internet: gildea@stop.mail-abuse.org
|
||||
%
|
||||
% Thanks to Paul Rubin, Bob Chassell, Len Tower, and Richard Mlynarik
|
||||
% for their many good ideas.
|
||||
|
||||
% If there were room, it would be nice to see a section on Dired.
|
||||
|
||||
% Translated from English to Portuguese by Rodrigo Real, send comments
|
||||
% and suggestions to rreal@ucpel.tche.br. Thanks to Mario Goulart for
|
||||
% the opinions.
|
||||
|
||||
|
||||
\def\versionnumber{2.3}
|
||||
\def\year{2006}
|
||||
|
||||
\def\shortcopyrightnotice{\vskip 1ex plus 2 fill
|
||||
\centerline{\small \copyright\ \year\ Free Software Foundation, Inc.
|
||||
Permissions on back. v\versionnumber}}
|
||||
|
||||
\def\copyrightnotice{
|
||||
\vskip 1ex plus 2 fill\begingroup\small
|
||||
\centerline{Copyright \copyright\ \year\ Free Software Foundation, Inc.}
|
||||
\centerline{v\versionnumber{} for GNU Emacs version 22, \year}
|
||||
\centerline{designed by Stephen Gildea}
|
||||
|
||||
Permission is granted to make and distribute copies of
|
||||
this card provided the copyright notice and this permission notice
|
||||
are preserved on all copies.
|
||||
|
||||
For copies of the GNU Emacs manual, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
\endgroup}
|
||||
|
||||
% make \bye not \outer so that the \def\bye in the \else clause below
|
||||
% can be scanned without complaint.
|
||||
\def\bye{\par\vfill\supereject\end}
|
||||
|
||||
\newdimen\intercolumnskip %horizontal space between columns
|
||||
\newbox\columna %boxes to hold columns already built
|
||||
\newbox\columnb
|
||||
|
||||
\def\ncolumns{\the\columnsperpage}
|
||||
|
||||
\message{[\ncolumns\space
|
||||
column\if 1\ncolumns\else s\fi\space per page]}
|
||||
|
||||
\def\scaledmag#1{ scaled \magstep #1}
|
||||
|
||||
% This multi-way format was designed by Stephen Gildea October 1986.
|
||||
% Note that the 1-column format is fontfamily-independent.
|
||||
\if 1\ncolumns %one-column format uses normal size
|
||||
\hsize 4in
|
||||
\vsize 10in
|
||||
\voffset -.7in
|
||||
\font\titlefont=\fontname\tenbf \scaledmag3
|
||||
\font\headingfont=\fontname\tenbf \scaledmag2
|
||||
\font\smallfont=\fontname\sevenrm
|
||||
\font\smallsy=\fontname\sevensy
|
||||
|
||||
\footline{\hss\folio}
|
||||
\def\makefootline{\baselineskip10pt\hsize6.5in\line{\the\footline}}
|
||||
\else %2 or 3 columns uses prereduced size
|
||||
\hsize 3.2in
|
||||
\if 1\the\letterpaper
|
||||
\vsize 7.95in
|
||||
\else
|
||||
\vsize 7.65in
|
||||
\fi
|
||||
\hoffset -.75in
|
||||
\voffset -.745in
|
||||
\font\titlefont=cmbx10 \scaledmag2
|
||||
\font\headingfont=cmbx10 \scaledmag1
|
||||
\font\smallfont=cmr6
|
||||
\font\smallsy=cmsy6
|
||||
\font\eightrm=cmr8
|
||||
\font\eightbf=cmbx8
|
||||
\font\eightit=cmti8
|
||||
\font\eighttt=cmtt8
|
||||
\font\eightmi=cmmi8
|
||||
\font\eightsy=cmsy8
|
||||
\textfont0=\eightrm
|
||||
\textfont1=\eightmi
|
||||
\textfont2=\eightsy
|
||||
\def\rm{\eightrm}
|
||||
\def\bf{\eightbf}
|
||||
\def\it{\eightit}
|
||||
\def\tt{\eighttt}
|
||||
\if 1\the\letterpaper
|
||||
\normalbaselineskip=.8\normalbaselineskip
|
||||
\else
|
||||
\normalbaselineskip=.7\normalbaselineskip
|
||||
\fi
|
||||
\normallineskip=.8\normallineskip
|
||||
\normallineskiplimit=.8\normallineskiplimit
|
||||
\normalbaselines\rm %make definitions take effect
|
||||
|
||||
\if 2\ncolumns
|
||||
\let\maxcolumn=b
|
||||
\footline{\hss\rm\folio\hss}
|
||||
\def\makefootline{\vskip 2in \hsize=6.86in\line{\the\footline}}
|
||||
\else \if 3\ncolumns
|
||||
\let\maxcolumn=c
|
||||
\nopagenumbers
|
||||
\else
|
||||
\errhelp{You must set \columnsperpage equal to 1, 2, or 3.}
|
||||
\errmessage{Illegal number of columns per page}
|
||||
\fi\fi
|
||||
|
||||
%% \intercolumnskip=.46in
|
||||
\intercolumnskip=.65in
|
||||
\def\abc{a}
|
||||
\output={% %see The TeXbook page 257
|
||||
% This next line is useful when designing the layout.
|
||||
%\immediate\write16{Column \folio\abc\space starts with \firstmark}
|
||||
\if \maxcolumn\abc \multicolumnformat \global\def\abc{a}
|
||||
\else\if a\abc
|
||||
\global\setbox\columna\columnbox \global\def\abc{b}
|
||||
%% in case we never use \columnb (two-column mode)
|
||||
\global\setbox\columnb\hbox to -\intercolumnskip{}
|
||||
\else
|
||||
\global\setbox\columnb\columnbox \global\def\abc{c}\fi\fi}
|
||||
\def\multicolumnformat{\shipout\vbox{\makeheadline
|
||||
\hbox{\box\columna\hskip\intercolumnskip
|
||||
\box\columnb\hskip\intercolumnskip\columnbox}
|
||||
\makefootline}\advancepageno}
|
||||
\def\columnbox{\leftline{\pagebody}}
|
||||
|
||||
\def\bye{\par\vfill\supereject
|
||||
\if a\abc \else\null\vfill\eject\fi
|
||||
\if a\abc \else\null\vfill\eject\fi
|
||||
\end}
|
||||
\fi
|
||||
|
||||
% we won't be using math mode much, so redefine some of the characters
|
||||
% we might want to talk about
|
||||
\catcode`\^=12
|
||||
\catcode`\_=12
|
||||
|
||||
\chardef\\=`\\
|
||||
\chardef\{=`\{
|
||||
\chardef\}=`\}
|
||||
|
||||
\hyphenation{mini-buf-fer}
|
||||
|
||||
\parindent 0pt
|
||||
\parskip 1ex plus .5ex minus .5ex
|
||||
|
||||
\def\small{\smallfont\textfont2=\smallsy\baselineskip=.8\baselineskip}
|
||||
|
||||
% newcolumn - force a new column. Use sparingly, probably only for
|
||||
% the first column of a page, which should have a title anyway.
|
||||
\outer\def\newcolumn{\vfill\eject}
|
||||
|
||||
% title - page title. Argument is title text.
|
||||
\outer\def\title#1{{\titlefont\centerline{#1}}\vskip 1ex plus .5ex}
|
||||
|
||||
% section - new major section. Argument is section name.
|
||||
\outer\def\section#1{\par\filbreak
|
||||
\vskip 3ex plus 2ex minus 2ex {\headingfont #1}\mark{#1}%
|
||||
\vskip 2ex plus 1ex minus 1.5ex}
|
||||
|
||||
\newdimen\keyindent
|
||||
|
||||
% beginindentedkeys...endindentedkeys - key definitions will be
|
||||
% indented, but running text, typically used as headings to group
|
||||
% definitions, will not.
|
||||
\def\beginindentedkeys{\keyindent=1em}
|
||||
\def\endindentedkeys{\keyindent=0em}
|
||||
\endindentedkeys
|
||||
|
||||
% paralign - begin paragraph containing an alignment.
|
||||
% If an \halign is entered while in vertical mode, a parskip is never
|
||||
% inserted. Using \paralign instead of \halign solves this problem.
|
||||
\def\paralign{\vskip\parskip\halign}
|
||||
|
||||
% \<...> - surrounds a variable name in a code example
|
||||
\def\<#1>{{\it #1\/}}
|
||||
|
||||
% kbd - argument is characters typed literally. Like the Texinfo command.
|
||||
\def\kbd#1{{\tt#1}\null} %\null so not an abbrev even if period follows
|
||||
|
||||
% beginexample...endexample - surrounds literal text, such a code example.
|
||||
% typeset in a typewriter font with line breaks preserved
|
||||
\def\beginexample{\par\leavevmode\begingroup
|
||||
\obeylines\obeyspaces\parskip0pt\tt}
|
||||
{\obeyspaces\global\let =\ }
|
||||
\def\endexample{\endgroup}
|
||||
|
||||
% key - definition of a key.
|
||||
% \key{description of key}{key-name}
|
||||
% prints the description left-justified, and the key-name in a \kbd
|
||||
% form near the right margin.
|
||||
\def\key#1#2{\leavevmode\hbox to \hsize{\vtop
|
||||
{\hsize=.75\hsize\rightskip=1em
|
||||
\hskip\keyindent\relax#1}\kbd{#2}\hfil}}
|
||||
|
||||
\newbox\metaxbox
|
||||
\setbox\metaxbox\hbox{\kbd{M-x }}
|
||||
\newdimen\metaxwidth
|
||||
\metaxwidth=\wd\metaxbox
|
||||
|
||||
% metax - definition of a M-x command.
|
||||
% \metax{description of command}{M-x command-name}
|
||||
% Tries to justify the beginning of the command name at the same place
|
||||
% as \key starts the key name. (The "M-x " sticks out to the left.)
|
||||
\def\metax#1#2{\leavevmode\hbox to \hsize{\hbox to .75\hsize
|
||||
{\hskip\keyindent\relax#1\hfil}%
|
||||
\hskip -\metaxwidth minus 1fil
|
||||
\kbd{#2}\hfil}}
|
||||
|
||||
% threecol - like "key" but with two key names.
|
||||
% for example, one for doing the action backward, and one for forward.
|
||||
\def\threecol#1#2#3{\hskip\keyindent\relax#1\hfil&\kbd{#2}\hfil\quad
|
||||
&\kbd{#3}\hfil\quad\cr}
|
||||
|
||||
|
||||
%**end of header
|
||||
|
||||
|
||||
\title{GNU Emacs: Cart\~ao de Refer\^encia}
|
||||
\centerline{(para vers\~ao 22)}
|
||||
|
||||
\section{Iniciando o Emacs}
|
||||
|
||||
Para entrar no GNU Emacs, digite: \kbd{emacs}
|
||||
|
||||
\section{Saindo do Emacs}
|
||||
|
||||
\key{suspende ou minimiza o Emacs}{C-z}
|
||||
\key{encerra o Emacs}{C-x C-c}
|
||||
|
||||
\section{Arquivos}
|
||||
|
||||
\key{{\bf abre} um arquivo}{C-x C-f}
|
||||
\key{{\bf salva} um arquivo em disco}{C-x C-s}
|
||||
\key{salva {\bf todos} arquivos abertos}{C-x s}
|
||||
\key{{\bf insere} outro arquivo neste buffer}{C-x i}
|
||||
\key{substitui este arquivo por outro}{C-x C-v}
|
||||
\key{salva o buffer em um arquivo especificado}{C-x C-w}
|
||||
\key{alterna o estado de somente leitura do buffer}{C-x C-q}
|
||||
|
||||
\section{Ajuda (Help)}
|
||||
|
||||
Tecle \kbd{C-h} (ou \kbd{F1}) e siga as instru{\c{c}}{\~o}es.
|
||||
|
||||
\key{remove a janela de ajuda}{C-x 1}
|
||||
\key{rola a janela de ajuda}{C-M-v}
|
||||
|
||||
\key{apropos: mostra comandos que casam com a string}{C-h a}
|
||||
\key{descreve fun{\c{c}}{\~a}o associada a teclas}{C-h k}
|
||||
\key{descreve uma fun{\c{c}}{\~a}o}{C-h f}
|
||||
\key{busca informa{\c{c}}{\~o}es espec{\'\i}ficas do modo}{C-h m}
|
||||
|
||||
\section{Recuperando-se de Erros}
|
||||
|
||||
\key{{\bf aborta} uma opera{\c{c}}{\~a}o}{C-g}
|
||||
\metax{{\bf recupera} arquivos ap{\'o}s crash}{M-x recover-session}
|
||||
\metax{desfaz uma altera{\c{c}}{\~a}o ({\bf undo})}{C-x u, C-_ {\rm or} C-/}
|
||||
\metax{restaura um buffer para o arquivo}{M-x revert-buffer}
|
||||
\key{redesenha a tela}{C-l}
|
||||
|
||||
\section{Busca Incremental}
|
||||
|
||||
\key{busca para frente}{C-s}
|
||||
\key{busca para tr{\'a}s}{C-r}
|
||||
\key{busca por express{\~a}o regular}{C-M-s}
|
||||
\key{busca por express{\~a}o regular para tr{\'a}s}{C-M-r}
|
||||
|
||||
\key{seleciona a string de pesquisa anterior}{M-p}
|
||||
\key{seleciona a string seguinte de pesquisa}{M-n}
|
||||
\key{sai da busca incremental}{RET}
|
||||
\key{desfaz o efeito do {\'u}ltimo caracter}{DEL}
|
||||
\key{encerra a busca}{C-g}
|
||||
|
||||
Use \kbd{C-s} ou \kbd{C-r} novamente para repetir a busca.
|
||||
\kbd{C-g} cancela apenas o que ainda n{\~a}o foi feito.
|
||||
|
||||
\shortcopyrightnotice
|
||||
|
||||
\section{Movimenta{\c{c}}{\~a}o}
|
||||
|
||||
\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
|
||||
\threecol{{\bf avan{\c{c}}ar}}{{\bf tr{\'a}s}}{{\bf frente}}
|
||||
\threecol{um caracter}{C-b}{C-f}
|
||||
\threecol{uma palavra}{M-b}{M-f}
|
||||
\threecol{uma linha}{C-p}{C-n}
|
||||
\threecol{para in{\'\i}cio ou fim de linha}{C-a}{C-e}
|
||||
\threecol{senten{\c{c}}a}{M-a}{M-e}
|
||||
\threecol{par{\'a}grafo}{M-\{}{M-\}}
|
||||
\threecol{p{\'a}gina}{C-x [}{C-x ]}
|
||||
\threecol{sexp}{C-M-b}{C-M-f}
|
||||
\threecol{fun{\c{c}}{\~a}o}{C-M-a}{C-M-e}
|
||||
\threecol{para in{\'\i}cio ou fim do buffer}{M-<}{M->}
|
||||
}
|
||||
|
||||
\key{rolar para pr{\'o}xima tela}{C-v}
|
||||
\key{rolar para tela anterior}{M-v}
|
||||
\key{rolar para esquerda}{C-x <}
|
||||
\key{rolar para direita}{C-x >}
|
||||
\key{rolar a linha corrente para o centro da tela}{C-u C-l}
|
||||
|
||||
\section{Cortando e Apagando}
|
||||
|
||||
\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
|
||||
\threecol{{\bf entidade a cortar}}{{\bf tr{\'a}s}}{{\bf frente}}
|
||||
\threecol{caracter (apaga, n{\~a}o corta)}{DEL}{C-d}
|
||||
\threecol{palavra}{M-DEL}{M-d}
|
||||
\threecol{linha (at{\'e} o final)}{M-0 C-k}{C-k}
|
||||
\threecol{senten{\c{c}}a}{C-x DEL}{M-k}
|
||||
\threecol{sexp}{M-- C-M-k}{C-M-k}
|
||||
}
|
||||
|
||||
\key{corta {\bf regi{\~a}o}}{C-w}
|
||||
\key{copia a {\bf regi{\~a}o}}{M-w}
|
||||
\key{cortar at{\'e} a pr{\'o}xima ocorr{\^e}ncia de {\it char}}{M-z {\it char}}
|
||||
|
||||
\key{colar a {\'u}ltima coisa cortada}{C-y}
|
||||
\key{substitui a {\'u}lt. colagem pela c{\'o}pia anterior}{M-y}
|
||||
|
||||
\section{Marcando}
|
||||
|
||||
\key{posiciona a marca aqui}{C-@ {\rm or} C-SPC}
|
||||
\key{troca a marca pelo ponto e vice-versa}{C-x C-x}
|
||||
|
||||
\key{coloca a marca {\it arg\/} {\bf palavras} adiante}{M-@}
|
||||
\key{marca o {\bf par{\'a}grafo}}{M-h}
|
||||
\key{marca a {\bf p{\'a}gina}}{C-x C-p}
|
||||
\key{marca a {\bf sexp}}{C-M-@}
|
||||
\key{marca uma {\bf fun{\c{c}}{\~a}o}}{C-M-h}
|
||||
\key{marca todo {\bf buffer}}{C-x h}
|
||||
|
||||
\section{Busca e Substitui{\c{c}}{\~a}o}
|
||||
|
||||
\key{Substitui interativamente uma string}{M-\%}
|
||||
% query-replace-regexp is bound to C-M-% but that can't be typed on
|
||||
% consoles.
|
||||
\metax{usando express{\~a}o regular}{M-x query-replace-regexp}
|
||||
|
||||
Respostas v{\'a}lidas no modo de busca e substitui{\c{c}}{\~a}o
|
||||
|
||||
\key{{\bf substitui} esta, e prossegue}{SPC}
|
||||
\key{substitui esta e entrada e n{\~a}o avan{\c{c}}a}{,}
|
||||
\key{{\bf pula} para a pr{\'o}xima sem substituir}{DEL}
|
||||
\key{substitui em todo o texto restante}{!}
|
||||
\key{{\bf volta} para a palavra anterior}{^}
|
||||
\key{{\bf encerra}}{RET}
|
||||
\key{entra na edi{\c{c}}{\~a}o recursiva (\kbd{C-M-c} para sair)}{C-r}
|
||||
|
||||
|
||||
\section{M{\'u}ltiplas Janelas}
|
||||
|
||||
Quando forem mostrados 2 comandos, o segundo tem comportamento similar
|
||||
para frame.
|
||||
|
||||
{\setbox0=\hbox{\kbd{0}}\advance\hsize by 0\wd0
|
||||
\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
|
||||
\threecol{elimina todas outras janelas}{C-x 1\ \ \ \ }{C-x 5 1}
|
||||
\threecol{divide a janela, acima e abaixo}{C-x 2\ \ \ \ }{C-x 5 2}
|
||||
\threecol{elimina esta janela}{C-x 0\ \ \ \ }{C-x 5 0}
|
||||
}}
|
||||
\key{divide a janela, lado a lado}{C-x 3}
|
||||
|
||||
\key{rola a outra janela}{C-M-v}
|
||||
|
||||
{\setbox0=\hbox{\kbd{0}}\advance\hsize by 2\wd0
|
||||
\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
|
||||
\threecol{leva o cursor para outra janela}{C-x o}{C-x 5 o}
|
||||
|
||||
\threecol{seleciona um buffer em outra janela}{C-x 4 b}{C-x 5 b}
|
||||
\threecol{mostra um buffer em outra janela}{C-x 4 C-o}{C-x 5 C-o}
|
||||
\threecol{busca um arquivo em outra janela}{C-x 4 f}{C-x 5 f}
|
||||
\threecol{busca arquivo (ro) em outra janela}{C-x 4 r}{C-x 5 r}
|
||||
\threecol{executa Dired em outra janela}{C-x 4 d}{C-x 5 d}
|
||||
\threecol{busca tag em outra janela}{C-x 4 .}{C-x 5 .}
|
||||
}}
|
||||
|
||||
\key{aumenta a janela na vertical}{C-x ^}
|
||||
\key{estreita a janela}{C-x \{}
|
||||
\key{alarga a janela}{C-x \}}
|
||||
|
||||
\section{Formatando}
|
||||
|
||||
\key{identa a {\bf linha} corrente (modo)}{TAB}
|
||||
\key{identa a {\bf regi{\~a}o} (modo)}{C-M-\\}
|
||||
\key{identa a {\bf sexp} (modo)}{C-M-q}
|
||||
\key{identa regi{\~a}o rigidamente {\it arg\/} colunas}{C-x TAB}
|
||||
|
||||
\key{insere uma nova linha ap{\'o}s o ponto}{C-o}
|
||||
\key{move o restante da linha para baixo}{C-M-o}
|
||||
\key{apaga linhas em branco em torno do ponto}{C-x C-o}
|
||||
\key{junta a linha com a anterior}{M-^}
|
||||
\key{apaga todos brancos em torno do ponto}{M-\\}
|
||||
\key{insere um espa{\c{c}}o em branco}{M-SPC}
|
||||
|
||||
\key{preenche o par{\'a}grafo}{M-q}
|
||||
\key{define a coluna limite de preenchimento}{C-x f}
|
||||
\key{define um prefixo para cada linha}{C-x .}
|
||||
|
||||
\key{formata fonte}{M-o}
|
||||
|
||||
\section{Mai{\'u}sculas e Min{\'u}sculas}
|
||||
|
||||
\key{Palavra para mai{\'u}sculas}{M-u}
|
||||
\key{Palavra para min{\'u}sculas}{M-l}
|
||||
\key{Primeira letra mai{\'u}scula (capitalize)}{M-c}
|
||||
|
||||
\key{Regi{\~a}o para mai{\'u}sculas}{C-x C-u}
|
||||
\key{Regi{\~a}o para min{\'u}sculas}{C-x C-l}
|
||||
|
||||
\section{O Minibuffer}
|
||||
|
||||
As teclas seguintes s{\~a}o definidas no minibuffer.
|
||||
|
||||
\key{complete o m{\'a}ximo possi{\'\i}vel}{TAB}
|
||||
\key{complete at{\'e} uma palavra}{SPC}
|
||||
\key{complete e execute}{RET}
|
||||
\key{mostre as op{\c{c}}{\~o}es para completar}{?}
|
||||
\key{busca a entrada anterior no minibuffer}{M-p}
|
||||
\key{busca a pr{\'o}xima entrada no minibuffer ou o default}{M-n}
|
||||
\key{busca regexp no hist{\'o}rico para tr{\'a}s}{M-r}
|
||||
\key{busca regexp no hist{\'o}rico para frente}{M-s}
|
||||
\key{encerra o comando}{C-g}
|
||||
|
||||
Tecle \kbd{C-x ESC ESC} para editar e repetir o {\'u}ltimo comando
|
||||
utilizado. Tecle \kbd{F10} para ativar o menu.
|
||||
|
||||
\newcolumn
|
||||
\title{GNU Emacs: Cart\~ao de Refer\^encia}
|
||||
\centerline{(para vers\~ao 22)}
|
||||
|
||||
\section{Buffers}
|
||||
|
||||
\key{seleciona outro buffer}{C-x b}
|
||||
\key{lista todos buffers}{C-x C-b}
|
||||
\key{mata um buffer}{C-x k}
|
||||
|
||||
\section{Transposi{\c{c}}{\~a}o}
|
||||
|
||||
\key{transp{\~o}e {\bf caracteres}}{C-t}
|
||||
\key{transp{\~o}e {\bf palavras}}{M-t}
|
||||
\key{transp{\~o}e {\bf linhas}}{C-x C-t}
|
||||
\key{transp{\~o}e {\bf sexps}}{C-M-t}
|
||||
|
||||
\section{Verifica{\c{c}}{\~a}o Ortogr{\'a}fica}
|
||||
|
||||
\key{verifica a palavra corrente}{M-\$}
|
||||
\metax{verifica todas palavras de uma regi{\~a}o}{M-x ispell-region}
|
||||
\metax{verifica todo o buffer}{M-x ispell-buffer}
|
||||
|
||||
\section{Tags}
|
||||
|
||||
\key{busca uma tag (uma defini{\c{c}}{\~a}o)}{M-.}
|
||||
\key{encontra a pr{\'o}xima ocorr{\^e}ncia da tag}{C-u M-.}
|
||||
\metax{especifica um novo arquivo de tags}{M-x visit-tags-table}
|
||||
|
||||
\metax{busca por regexp em todos arquivos}{M-x tags-search}
|
||||
\metax{busca e subst. em todos arquivos}{M-x tags-query-replace}
|
||||
\key{continua a {\'u}ltima busca ou busca e substitui{\c{c}}{\~a}o}{M-,}
|
||||
|
||||
\section{Shells}
|
||||
|
||||
\key{executa um comando do shell}{M-!}
|
||||
\key{executa um comando do shell na regi{\~a}o}{M-|}
|
||||
\key{filtra uma regi{\~a}o por um comando do shell}{C-u M-|}
|
||||
\key{inicia um shell na janela \kbd{*shell*}}{M-x shell}
|
||||
|
||||
\section{Ret{\^a}ngulos}
|
||||
|
||||
\key{copia o ret{\^a}ngulo para o registrador}{C-x r r}
|
||||
\key{corta o ret{\^a}ngulo}{C-x r k}
|
||||
\key{cola o ret{\^a}ngulo}{C-x r y}
|
||||
\key{abre o ret{\^a}ngulo, move o texto para direita}{C-x r o}
|
||||
\key{troca por espa{\c{c}}os o conte{\'u}do do ret{\^a}ngulo}{C-x r c}
|
||||
\key{antep{\~o}e uma linha a string}{C-x r t}
|
||||
|
||||
\section{Abreviaturas}
|
||||
|
||||
\key{adiciona uma abreviatura global}{C-x a g}
|
||||
\key{adiciona abreviatura ao modo local}{C-x a l}
|
||||
\key{adiciona globalmente expans{\~a}o de abrev.}{C-x a i g}
|
||||
\key{adiciona localmente expans{\~a}o de abrev.}{C-x a i l}
|
||||
\key{explicitamente expande uma abrev}{C-x a e}
|
||||
|
||||
\key{completa com base em palavras anteriores}{M-/}
|
||||
|
||||
|
||||
\section{Express{\~o}es Regulares}
|
||||
|
||||
\key{qualquer caracter exceto nova linha}{. {\rm(dot)}}
|
||||
\key{zero ou mais repeti{\c{c}}{\~o}es}{*}
|
||||
\key{uma ou mais repeti{\c{c}}{\~o}es}{+}
|
||||
\key{zero ou uma repeti{\c{c}}{\~a}o}{?}
|
||||
\key{protege o caracter especial {\it c\/}}{\\{\it c}}
|
||||
\key{(``or'')}{\\|}
|
||||
\key{agrupamento}{\\( {\rm$\ldots$} \\)}
|
||||
\key{mesmo texto que {\it n\/}-{\'e}simo grupo}{\\{\it n}}
|
||||
\key{quebra de palavra}{\\b}
|
||||
\key{sem quebra de palavra}{\\B}
|
||||
|
||||
\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
|
||||
\threecol{{\bf entidade}}{{\bf casa in{\'\i}cio}}{{\bf casa fim}}
|
||||
\threecol{linha}{^}{\$}
|
||||
\threecol{palavra}{\\<}{\\>}
|
||||
\threecol{buffer}{\\`}{\\'}
|
||||
|
||||
\threecol{{\bf classe de caracteres}}{{\bf casa esses}}{{\bf casa os outros}}
|
||||
\threecol{conjunto expl{\'\i}cito}{[ {\rm$\ldots$} ]}{[^ {\rm$\ldots$} ]}
|
||||
\threecol{caracter de sintaxe de palavra}{\\w}{\\W}
|
||||
\threecol{caracter de sintaxe de {\it c}}{\\s{\it c}}{\\S{\it c}}
|
||||
}
|
||||
|
||||
\section{Conjuntos de Carac. Internacionais}
|
||||
|
||||
\key{especifica uma l{\'\i}ngua principal}{C-x RET l}
|
||||
\metax{mostra todos m{\'e}todos de inser{\c{c}}{\~a}o}{M-x list-input-methods}
|
||||
\key{habilita/desabilita um m{\'e}todo de inser{\c{c}}{\~a}o}{C-\\}
|
||||
\key{determina o sistema de codifica{\c{c}}{\~a}o}{C-x RET c}
|
||||
\metax{mostra sistemas de codifica{\c{c}}{\~a}o}{M-x list-coding-systems}
|
||||
\metax{escolhe a codifica{\c{c}}{\~a}o preferida}{M-x prefer-coding-system}
|
||||
|
||||
\section{Info}
|
||||
|
||||
\key{entra no leitor de Info}{C-h i}
|
||||
\key{busca fun{\c{c}}{\~a}o ou arquivo no Info}{C-h S}
|
||||
\beginindentedkeys
|
||||
|
||||
Movimenta{\c{c}}{\~a}o em um nodo:
|
||||
|
||||
\key{rola para frente}{SPC}
|
||||
\key{rola para tr{\'a}s}{DEL}
|
||||
\key{in{\'\i}cio do nodo}{. {\rm (dot)}}
|
||||
|
||||
Movimenta{\c{c}}{\~a}o entre nodos:
|
||||
|
||||
\key{{\bf pr{\'o}ximo} nodo}{n}
|
||||
\key{nodo {\bf anterior}}{p}
|
||||
\key{mover cima {\bf cima}}{u}
|
||||
\key{seleciona item do menu pelo nome}{m}
|
||||
\key{seleciona {\it n\/}-{\'e}simo item do menu}{{\it n}}
|
||||
\key{segue refer{\^e}ncia cruzada (retorna com \kbd{l})}{f}
|
||||
\key{retorna {\'u}ltimo nodo visitado}{l}
|
||||
\key{retorna ao diret{\'o}rio de nodos}{d}
|
||||
\key{ir para o topo do arquivo Info}{t}
|
||||
\key{ir para qualquer nodo por nome}{g}
|
||||
|
||||
Outros:
|
||||
|
||||
\key{executar {\bf tutorial} do Info}{h}
|
||||
\key{busca pelo assunto no {\'\i}ndice}{i}
|
||||
\key{busca por express{\~a}o regular}{s}
|
||||
\key{{\bf sair} Info}{q}
|
||||
|
||||
\endindentedkeys
|
||||
|
||||
\section{Registrador}
|
||||
|
||||
\key{salva regi{\~a}o em um registrador}{C-x r s}
|
||||
\key{insere o conte{\'u}do do registrador no buffer}{C-x r i}
|
||||
|
||||
\key{salva valor do ponto no registrador}{C-x r SPC}
|
||||
\key{salta para o ponto salvo no registrador}{C-x r j}
|
||||
|
||||
\section{Macros de Teclado}
|
||||
|
||||
\key{{\bf inicia} a defini{\c{c}}{\~a}o de uma macro}{C-x (}
|
||||
\key{{\bf encerra} a defini{\c{c}}{\~a}o de uma macro}{C-x )}
|
||||
\key{{\bf executa} a {\'u}ltima macro definida}{C-x e}
|
||||
\key{adiciona a {\'u}ltima macro definida}{C-u C-x (}
|
||||
\metax{nomeia a {\'u}ltima macro definida}{M-x name-last-kbd-macro}
|
||||
\metax{insere uma defini{\c{c}}{\~a}o em Lisp}{M-x insert-kbd-macro}
|
||||
|
||||
\section{Lidando com Emacs Lisp}
|
||||
|
||||
\key{avalia {\bf sexp} antes do ponto}{C-x C-e}
|
||||
\key{avalia a {\bf defun} corrente}{C-M-x}
|
||||
\metax{avalia a {\bf regi{\~a}o}}{M-x eval-region}
|
||||
\key{l{\^e} e avalia o minibuffer}{M-:}
|
||||
\metax{carrega do diret{\'o}rio padr{\~a}o do sistema}{M-x load-library}
|
||||
|
||||
\section{Personaliza{\c{c}}{\~a}o Simples}
|
||||
|
||||
\metax{personaliza vari{\'a}veis e fontes}{M-x customize}
|
||||
|
||||
% The intended audience here is the person who wants to make simple
|
||||
% customizations and knows Lisp syntax.
|
||||
|
||||
Fazendo teclas de atalho globais em Emacs Lisp (exemplos):
|
||||
|
||||
\beginexample%
|
||||
(global-set-key "\\C-cg" 'goto-line)
|
||||
(global-set-key "\\M-\#" 'query-replace-regexp)
|
||||
\endexample
|
||||
|
||||
\section{Escrevendo Comandos}
|
||||
|
||||
\beginexample%
|
||||
(defun \<command-name> (\<args>)
|
||||
"\<documentation>" (interactive "\<template>")
|
||||
\<body>)
|
||||
\endexample
|
||||
|
||||
Um exemplo:
|
||||
|
||||
\beginexample%
|
||||
(defun this-line-to-top-of-window (line)
|
||||
"Reposition line point is on to top of window.
|
||||
With ARG, put point on line ARG."
|
||||
(interactive "P")
|
||||
(recenter (if (null line)
|
||||
0
|
||||
(prefix-numeric-value line))))
|
||||
\endexample
|
||||
|
||||
A especifica{\c{c}}{\~a}o \kbd{interactive} explica como ler
|
||||
interativamente argumentos. Tecle \kbd{C-h f interactive} para mais
|
||||
detalhes.
|
||||
|
||||
\copyrightnotice
|
||||
|
||||
\bye
|
||||
|
||||
% Local variables:
|
||||
% compile-command: "tex pt-br-refcard"
|
||||
% coding: iso-latin-1
|
||||
% End:
|
||||
|
||||
% arch-tag: 56bf248c-a1f3-443d-93f7-02d7aea67d94
|
@ -598,8 +598,9 @@ Moving between nodes:
|
||||
Other:
|
||||
|
||||
\key{run Info {\bf tutorial}}{h}
|
||||
\key{look up a subject in the indices}{i}
|
||||
\key{search nodes for regexp}{s}
|
||||
\key{{\bf quit} Info}{q}
|
||||
\key{search nodes for regexp}{M-s}
|
||||
|
||||
\endindentedkeys
|
||||
|
||||
|
@ -436,8 +436,9 @@ apropos:
|
||||
|
||||
\begin{tabular}{p{\ColWidth}l}
|
||||
ÚÁÐÕÓÔÉÔØ {\bf ÕÞÅÂÎÉË} ÐÏ ÓÉÓÔÅÍÅ ÄÏËÕÍÅÎÔÁÃÉÉ & \kbd{h} \\
|
||||
ÐÏÉÓË × ÕÚÌÁÈ Ó ÐÏÍÏÝØÀ ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ & \kbd{s} \\
|
||||
% look up a subject in the indices & \kbd{i} % FIXME
|
||||
{\bf ÐÒÅËÒÁÔÉÔØ ÒÁÂÏÔÕ} Ó ÄÏËÕÍÅÎÔÁÃÉÅÊ & \kbd{q} \\
|
||||
поиск в узлах с помощью регулярных выражений & \kbd{M-s} \\
|
||||
\end{tabular}
|
||||
|
||||
\section{òÅÇÉÓÔÒÙ}
|
||||
@ -515,5 +516,10 @@ With ARG, put point on line ARG."
|
||||
%\end{multicols}
|
||||
|
||||
\end{document}
|
||||
|
||||
% Local variables:
|
||||
% compile-command: "latex ru-refcard"
|
||||
% coding: cyrillic-koi8
|
||||
% End:
|
||||
|
||||
% arch-tag: 868a12f6-4339-4a14-a56e-4a3937277a9e
|
||||
|
@ -592,8 +592,9 @@ Pohyb medzi uzlami:
|
||||
Ïal¹ie:
|
||||
|
||||
\key{spusti» {\bf tútorial} k~Infu}{h}
|
||||
\key{{\bf skonèi»} Info}{q}
|
||||
% \key{look up a subject in the indices}{i} % FIXME
|
||||
\key{vyhµada» re»azec v uzloch}{M-s}
|
||||
\key{{\bf skonèi»} Info}{q}
|
||||
|
||||
\endindentedkeys
|
||||
|
||||
|
BIN
etc/spook.lines
BIN
etc/spook.lines
Binary file not shown.
@ -1,3 +1,8 @@
|
||||
2006-05-23 Francesco Potort,Al(B <pot@gnu.org>
|
||||
|
||||
* pop.c (pop_open, socket_connection, KPOP_SERVICE): Added
|
||||
comments explaining why the "kpop" service is never used.
|
||||
|
||||
2006-05-13 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* makefile.w32-in (lisp1): Add fringe.elc.
|
||||
|
@ -135,7 +135,7 @@ static char *find_crlf __P((char *, int));
|
||||
#define KPOP_PORT 1109
|
||||
#define POP_SERVICE "pop3" /* we don't want the POP2 port! */
|
||||
#ifdef KERBEROS
|
||||
#define KPOP_SERVICE "kpop"
|
||||
#define KPOP_SERVICE "kpop" /* never used: look for 20060515 to see why */
|
||||
#endif
|
||||
|
||||
char pop_error[ERROR_MAX];
|
||||
@ -264,10 +264,11 @@ pop_open (host, username, password, flags)
|
||||
return (0);
|
||||
}
|
||||
}
|
||||
if (password)
|
||||
if (password) /* always true, detected 20060515 */
|
||||
flags |= POP_NO_KERBEROS;
|
||||
else
|
||||
password = username;
|
||||
password = username; /* dead code, detected 20060515 */
|
||||
/** "kpop" service is never used: look for 20060515 to see why **/
|
||||
|
||||
sock = socket_connection (host, flags);
|
||||
if (sock == -1)
|
||||
@ -1047,6 +1048,7 @@ socket_connection (host, flags)
|
||||
bzero ((char *) &addr, sizeof (addr));
|
||||
addr.sin_family = AF_INET;
|
||||
|
||||
/** "kpop" service is never used: look for 20060515 to see why **/
|
||||
#ifdef KERBEROS
|
||||
service = (flags & POP_NO_KERBEROS) ? POP_SERVICE : KPOP_SERVICE;
|
||||
#else
|
||||
@ -1073,6 +1075,7 @@ socket_connection (host, flags)
|
||||
}
|
||||
else
|
||||
{
|
||||
/** "kpop" service is never used: look for 20060515 to see why **/
|
||||
#ifdef KERBEROS
|
||||
addr.sin_port = htons ((flags & POP_NO_KERBEROS) ?
|
||||
POP_PORT : KPOP_PORT);
|
||||
|
167
lisp/ChangeLog
167
lisp/ChangeLog
@ -1,3 +1,160 @@
|
||||
2006-05-23 Thien-Thi Nguyen <ttn@gnu.org>
|
||||
|
||||
* emacs-lisp/ewoc.el (ewoc-delete): New function.
|
||||
(ewoc-filter): Use `ewoc-delete'.
|
||||
|
||||
* emacs-lisp/bindat.el (bindat-pack): Doc fix.
|
||||
|
||||
2006-05-22 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* textmodes/bibtex.el (bibtex-format-entry, bibtex-clean-entry):
|
||||
Signal more user-friendly error messages.
|
||||
|
||||
* complete.el (PC-do-completion): Undo the addition of implicit
|
||||
wildcards if they did not lead to finding any match.
|
||||
(read-file-name-internal): Don't add the final > if the completion is
|
||||
not finished.
|
||||
|
||||
2006-05-22 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* textmodes/bibtex.el (bibtex-maintain-sorted-entries):
|
||||
Quote safe-local-variable predicate.
|
||||
|
||||
2006-05-22 Thien-Thi Nguyen <ttn@gnu.org>
|
||||
|
||||
* emacs-lisp/ewoc.el (ewoc-set-data): New function.
|
||||
|
||||
2006-05-21 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
|
||||
|
||||
* textmodes/bibtex.el (bibtex-maintain-sorted-entries): Mark as safe.
|
||||
|
||||
* progmodes/make-mode.el (makefile-special-targets-list)
|
||||
(makefile-macro-table, makefile-target-table): Mark as risky.
|
||||
(makefile-query-one-target-method): Make this the alias for the
|
||||
following variable.
|
||||
(makefile-query-one-target-method-function): Make this the real name.
|
||||
|
||||
* textmodes/artist.el (artist-text-renderer): Make this the alias
|
||||
for the following variable.
|
||||
(artist-text-renderer-function): Make this the real name.
|
||||
|
||||
* textmodes/flyspell.el (flyspell-generic-check-word-p): Make this
|
||||
the alias for the following variable.
|
||||
(flyspell-generic-check-word-predicate): Make this the real name.
|
||||
|
||||
* textmodes/ispell.el (ispell-format-word): Make this the alias
|
||||
for the following variable.
|
||||
(ispell-format-word-function): Make this the real name.
|
||||
(ispell-message-text-end): Mark as risky.
|
||||
|
||||
* skeleton.el (skeleton-transformation, skeleton-filter)
|
||||
(skeleton-pair-filter): Make these the aliases for the following
|
||||
variables.
|
||||
(skeleton-transformation-function, skeleton-filter-function)
|
||||
(skeleton-pair-filter-function): Make these the real names.
|
||||
|
||||
* progmodes/sh-script.el (sh-mode): Use skeleton-filter-function
|
||||
and skeleton-pair-filter-function.
|
||||
|
||||
* textmodes/sgml-mode.el (sgml-transformation): Make this the
|
||||
alias for the following variable.
|
||||
(sgml-transformation-function): Make this the real name.
|
||||
(sgml-tag-alist): Mark as risky.
|
||||
|
||||
2006-05-21 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* simple.el (kill-region): Interactively, pass point, then mark.
|
||||
|
||||
2006-05-22 Thien-Thi Nguyen <ttn@gnu.org>
|
||||
|
||||
* emacs-lisp/ewoc.el (ewoc-create): Add autoload cookie.
|
||||
|
||||
2006-05-21 Romain Francoise <romain@orebokech.com>
|
||||
|
||||
* dired-x.el (dired-mode-map): Don't bind M-g.
|
||||
|
||||
2006-05-20 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* dired.el (dired-mode-map): Put dired-goto-file on j, not M-g.
|
||||
(dired-goto-file): Doc fix.
|
||||
|
||||
2006-05-21 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
* emulation/cua-base.el: Mention customizing cua-mode as alternative
|
||||
way to enable built-in cua-mode if user loads older CUA-mode package.
|
||||
|
||||
* ido.el (ido-read-file-name): Bind ido-show-dot-for-dired to nil
|
||||
if default-filename is specified.
|
||||
|
||||
2006-05-20 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* menu-bar.el (menu-bar-manuals-menu) <info-apropos>: New menu item.
|
||||
|
||||
* info.el (info-apropos): Make sure current-file and current-node
|
||||
have non-nil values. Speed up by using add-to-list instead of
|
||||
manual consing.
|
||||
|
||||
2006-05-20 Micha,Ak(Bl Cadilhac <michael.cadilhac@lrde.org> (tiny change)
|
||||
|
||||
* progmodes/make-mode.el (makefile-mode): Doc fix.
|
||||
|
||||
2006-05-20 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* dired-aux.el (dired-do-shell-command): Doc fix.
|
||||
|
||||
2006-05-20 Kevin Ryde <user42@zip.com.au>
|
||||
|
||||
* info-xref.el (info-xref-check-all-custom): Skip :tag part of
|
||||
``(custom-manual :tag "Foo" "(foo)Node")''.
|
||||
|
||||
2006-05-20 Karl Chen <quarl@cs.berkeley.edu>
|
||||
|
||||
* progmodes/cc-vars.el (c-backslash-column): Mark as safe if its
|
||||
value is an integer.
|
||||
|
||||
2006-05-20 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* mail/rmail.el (rmail-mime-charset-pattern): Add "?:" before
|
||||
"format".
|
||||
(rmail-convert-to-babyl-format): Undo the change from 2006-04-19.
|
||||
|
||||
2006-05-20 Martin Rudalics <rudalics@gmx.at>
|
||||
|
||||
* progmodes/hideif.el (show-ifdef-block): Fix bug where parts of
|
||||
a hidden block remained hidden if `hide-ifdef-lines' is non-nil.
|
||||
|
||||
2006-05-20 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* progmodes/gud.el (gdb-script-font-lock-keywords): Use a stricter
|
||||
regexp for keywords.
|
||||
|
||||
2006-05-20 Masayuki FUJII <boochang@m4.kcn.ne.jp> (tiny change)
|
||||
|
||||
* dnd.el (dnd-get-local-file-name): Specify LITERAL in
|
||||
replace-regexp-in-string.
|
||||
|
||||
* term/w32-win.el (w32-drag-n-drop): Substitute '/' for '\',
|
||||
encode, and escape file name on conversion to URL.
|
||||
|
||||
2006-05-20 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
|
||||
|
||||
* dnd.el (dnd-handle-one-url): Change 3rd arg ARG to URL.
|
||||
Don't unescape URL.
|
||||
(dnd-get-local-file-name): Unescape URL on conversion to file name.
|
||||
|
||||
* x-dnd.el (x-dnd-handle-file-name): Encode and escape file names
|
||||
on conversion to URLs.
|
||||
|
||||
* net/browse-url.el (browse-url-file-url): Encode file name on
|
||||
conversion to URL.
|
||||
|
||||
* term/mac-win.el (mac-ae-open-documents): Escape file name on
|
||||
conversion to URL.
|
||||
|
||||
2006-05-19 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* progmodes/cc-styles.el (c-style-alist): Doc fix.
|
||||
|
||||
2006-05-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
|
||||
|
||||
* term/mac-win.el (mac-bytes-to-digits): Remove function.
|
||||
@ -41,14 +198,14 @@
|
||||
|
||||
* emacs-lisp/ewoc.el (ewoc--adjust): New func.
|
||||
(ewoc--insert-new-node): Don't insert trailing newline.
|
||||
Instead, adjust succesor nodes' start markers.
|
||||
Instead, adjust successor nodes's start markers.
|
||||
(ewoc--refresh-node): Delete all text from current node's start
|
||||
marker to the next one's; adjust successor nodes' start markers.
|
||||
marker to the next one's; adjust successor nodes's start markers.
|
||||
(ewoc--create): Doc fixes.
|
||||
(ewoc--refresh): Don't insert newline.
|
||||
(ewoc--set-hf): Use `ewoc--set-buffer-bind-dll-let*'.
|
||||
* pcvs.el (cvs-make-cvs-buffer): Specify
|
||||
extra newline for ewoc's header and footer.
|
||||
* pcvs.el (cvs-make-cvs-buffer):
|
||||
Specify extra newline for ewoc's header and footer.
|
||||
(cvs-update-header): Update initial header recognition.
|
||||
Append newline to final header and footer values.
|
||||
* pcvs-info.el (cvs-fileinfo-pp): Insert trailing newline.
|
||||
@ -502,7 +659,7 @@
|
||||
reference to the Lisp manual to the warning about pure space
|
||||
overflow.
|
||||
|
||||
2006-05-05 Micha,Ak(Bl Cadilhac <michael.cadilhac@lrde.org>
|
||||
2006-05-05 Micha,Ak(Bl Cadilhac <michael.cadilhac@lrde.org> (tiny change)
|
||||
|
||||
* textmodes/ispell.el (ispell-buffer-local-dict): Add a `no-reload'
|
||||
argument to avoid the call to `ispell-internal-change-dictionary'
|
||||
|
@ -369,7 +369,7 @@ of `minibuffer-completion-table' and the minibuffer contents.")
|
||||
(str (buffer-substring beg end))
|
||||
(incname (and filename (string-match "<\\([^\"<>]*\\)>?$" str)))
|
||||
(ambig nil)
|
||||
basestr
|
||||
basestr origstr
|
||||
env-on
|
||||
regex
|
||||
p offset
|
||||
@ -415,7 +415,7 @@ of `minibuffer-completion-table' and the minibuffer contents.")
|
||||
(file-name-nondirectory dir))
|
||||
"*/" file))
|
||||
(setq dir (file-name-directory dir)))
|
||||
(setq str (concat dir file))))
|
||||
(setq origstr str str (concat dir file))))
|
||||
|
||||
;; Look for wildcard expansions in directory name
|
||||
(and filename
|
||||
@ -443,7 +443,14 @@ of `minibuffer-completion-table' and the minibuffer contents.")
|
||||
(setq str (concat dir (file-name-nondirectory str)))
|
||||
(insert str)
|
||||
(setq end (+ beg (length str)))))
|
||||
(setq filename nil table nil pred nil))))
|
||||
(if origstr
|
||||
;; If the wildcards were introduced by us, it's possible
|
||||
;; that read-file-name-internal (especially our
|
||||
;; PC-include-file advice) can still find matches for the
|
||||
;; original string even if we couldn't, so remove the
|
||||
;; added wildcards.
|
||||
(setq str origstr)
|
||||
(setq filename nil table nil pred nil)))))
|
||||
|
||||
;; Strip directory name if appropriate
|
||||
(if filename
|
||||
@ -943,10 +950,11 @@ absolute rather than relative to some directory on the SEARCH-PATH."
|
||||
(if (string-match "<\\([^\"<>]*\\)>?\\'" (ad-get-arg 0))
|
||||
(let* ((string (ad-get-arg 0))
|
||||
(action (ad-get-arg 2))
|
||||
(name (substring string (match-beginning 1) (match-end 1)))
|
||||
(name (match-string 1 string))
|
||||
(str2 (substring string (match-beginning 0)))
|
||||
(completion-table
|
||||
(mapcar (lambda (x) (format "<%s>" x))
|
||||
(mapcar (lambda (x)
|
||||
(format (if (string-match "/\\'" x) "<%s" "<%s>") x))
|
||||
(PC-include-file-all-completions
|
||||
name (PC-include-file-path)))))
|
||||
(setq ad-return-value
|
||||
|
@ -493,7 +493,8 @@ the Dired buffer, so output files usually are created there instead of
|
||||
in a subdir.
|
||||
|
||||
In a noninteractive call (from Lisp code), you must specify
|
||||
the list of file names explicitly with the FILE-LIST argument."
|
||||
the list of file names explicitly with the FILE-LIST argument, which
|
||||
can be produced by `dired-get-marked-files', for example."
|
||||
;;Functions dired-run-shell-command and dired-shell-stuff-it do the
|
||||
;;actual work and can be redefined for customization.
|
||||
(interactive
|
||||
|
@ -251,7 +251,6 @@ to nil: a pipe using `zcat' or `gunzip -c' will be used."
|
||||
(define-key dired-mode-map "*." 'dired-mark-extension)
|
||||
(define-key dired-mode-map "\M-!" 'dired-smart-shell-command)
|
||||
(define-key dired-mode-map "w" 'dired-copy-filename-as-kill)
|
||||
(define-key dired-mode-map "\M-g" 'dired-goto-file)
|
||||
(define-key dired-mode-map "\M-G" 'dired-goto-subdir)
|
||||
(define-key dired-mode-map "F" 'dired-do-find-marked-files)
|
||||
(define-key dired-mode-map "Y" 'dired-do-relsymlink)
|
||||
|
@ -1212,9 +1212,9 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST."
|
||||
(define-key map "f" 'dired-find-file)
|
||||
(define-key map "\C-m" 'dired-advertised-find-file)
|
||||
(define-key map "g" 'revert-buffer)
|
||||
(define-key map "\M-g" 'dired-goto-file)
|
||||
(define-key map "h" 'describe-mode)
|
||||
(define-key map "i" 'dired-maybe-insert-subdir)
|
||||
(define-key map "j" 'dired-goto-file)
|
||||
(define-key map "k" 'dired-do-kill-lines)
|
||||
(define-key map "l" 'dired-do-redisplay)
|
||||
(define-key map "m" 'dired-mark)
|
||||
@ -2218,7 +2218,7 @@ instead of `dired-actual-switches'."
|
||||
(forward-line 1))))
|
||||
|
||||
(defun dired-goto-file (file)
|
||||
"Go to file line of FILE in this dired buffer."
|
||||
"Go to line describing file FILE in this dired buffer."
|
||||
;; Return value of point on success, else nil.
|
||||
;; FILE must be an absolute file name.
|
||||
;; Loses if FILE contains control chars like "\007" for which ls
|
||||
|
26
lisp/dnd.el
26
lisp/dnd.el
@ -69,39 +69,34 @@ if some action was made, or nil if the URL is ignored."
|
||||
|
||||
;; Functions
|
||||
|
||||
(defun dnd-handle-one-url (window action arg)
|
||||
(defun dnd-handle-one-url (window action url)
|
||||
"Handle one dropped url by calling the appropriate handler.
|
||||
The handler is first located by looking at `dnd-protocol-alist'.
|
||||
If no match is found here, and the value of `browse-url-browser-function'
|
||||
is a pair of (REGEXP . FUNCTION), those regexps are tried for a match.
|
||||
If no match is found, just call `dnd-insert-text'.
|
||||
WINDOW is where the drop happend, ACTION is the action for the drop,
|
||||
ARG is the URL that has been dropped.
|
||||
URL is what has been dropped.
|
||||
Returns ACTION."
|
||||
(require 'browse-url)
|
||||
(let* ((uri (replace-regexp-in-string
|
||||
"%[A-Z0-9][A-Z0-9]"
|
||||
(lambda (arg)
|
||||
(format "%c" (string-to-number (substring arg 1) 16)))
|
||||
arg))
|
||||
ret)
|
||||
(let (ret)
|
||||
(or
|
||||
(catch 'done
|
||||
(dolist (bf dnd-protocol-alist)
|
||||
(when (string-match (car bf) uri)
|
||||
(setq ret (funcall (cdr bf) uri action))
|
||||
(when (string-match (car bf) url)
|
||||
(setq ret (funcall (cdr bf) url action))
|
||||
(throw 'done t)))
|
||||
nil)
|
||||
(when (not (functionp browse-url-browser-function))
|
||||
(catch 'done
|
||||
(dolist (bf browse-url-browser-function)
|
||||
(when (string-match (car bf) uri)
|
||||
(when (string-match (car bf) url)
|
||||
(setq ret 'private)
|
||||
(funcall (cdr bf) uri action)
|
||||
(funcall (cdr bf) url action)
|
||||
(throw 'done t)))
|
||||
nil))
|
||||
(progn
|
||||
(dnd-insert-text window action uri)
|
||||
(dnd-insert-text window action url)
|
||||
(setq ret 'private)))
|
||||
ret))
|
||||
|
||||
@ -134,6 +129,11 @@ Return nil if URI is not a local file."
|
||||
((string-match "^file:" uri) ; Old KDE, Motif, Sun
|
||||
(substring uri (match-end 0))))))
|
||||
(when (and f must-exist)
|
||||
(setq f (replace-regexp-in-string
|
||||
"%[A-Z0-9][A-Z0-9]"
|
||||
(lambda (arg)
|
||||
(format "%c" (string-to-number (substring arg 1) 16)))
|
||||
f nil t))
|
||||
(let* ((decoded-f (decode-coding-string
|
||||
f
|
||||
(or file-name-coding-system
|
||||
|
@ -171,8 +171,8 @@
|
||||
;; | INTEGER_CONSTANT
|
||||
;; | DEREF
|
||||
|
||||
;; DEREF ::= ( [NAME | INTEGER]... ) -- Field NAME or Array index relative to
|
||||
;; current structure spec.
|
||||
;; DEREF ::= ( [NAME | INTEGER]... ) -- Field NAME or Array index relative
|
||||
;; to current structure spec.
|
||||
;; -- see bindat-get-field
|
||||
|
||||
;; A `union' specification
|
||||
@ -415,7 +415,9 @@ e.g. corresponding to STRUCT.FIELD1[INDEX2].FIELD3..."
|
||||
((eq type 'repeat)
|
||||
(let ((index 0))
|
||||
(while (< index len)
|
||||
(bindat--length-group (nth index (bindat-get-field struct field)) (nthcdr tail item))
|
||||
(bindat--length-group
|
||||
(nth index (bindat-get-field struct field))
|
||||
(nthcdr tail item))
|
||||
(setq index (1+ index)))))
|
||||
((eq type 'union)
|
||||
(let ((tag len) (cases (nthcdr tail item)) case cc)
|
||||
@ -436,7 +438,7 @@ e.g. corresponding to STRUCT.FIELD1[INDEX2].FIELD3..."
|
||||
(setq pos (+ pos len))))))))
|
||||
|
||||
(defun bindat-length (spec struct)
|
||||
"Calculate raw-data length for STRUCT according to bindat specification SPEC."
|
||||
"Calculate raw-data length for STRUCT according to bindat SPEC."
|
||||
(let ((pos 0))
|
||||
(bindat--length-group struct spec)
|
||||
pos))
|
||||
@ -557,7 +559,9 @@ e.g. corresponding to STRUCT.FIELD1[INDEX2].FIELD3..."
|
||||
((eq type 'repeat)
|
||||
(let ((index 0))
|
||||
(while (< index len)
|
||||
(bindat--pack-group (nth index (bindat-get-field struct field)) (nthcdr tail item))
|
||||
(bindat--pack-group
|
||||
(nth index (bindat-get-field struct field))
|
||||
(nthcdr tail item))
|
||||
(setq index (1+ index)))))
|
||||
((eq type 'union)
|
||||
(let ((tag len) (cases (nthcdr tail item)) case cc)
|
||||
@ -577,13 +581,14 @@ e.g. corresponding to STRUCT.FIELD1[INDEX2].FIELD3..."
|
||||
|
||||
(defun bindat-pack (spec struct &optional raw-data pos)
|
||||
"Return binary data packed according to SPEC for structured data STRUCT.
|
||||
Optional third arg RAW-DATA is a pre-allocated string or vector to unpack into.
|
||||
Optional third arg RAW-DATA is a pre-allocated string or vector to pack into.
|
||||
Optional fourth arg POS is the starting offset into RAW-DATA.
|
||||
Note: The result is a multibyte string; use `string-make-unibyte' on it
|
||||
to make it unibyte if necessary."
|
||||
(let ((no-return raw-data))
|
||||
(unless pos (setq pos 0))
|
||||
(unless raw-data (setq raw-data (make-vector (+ pos (bindat-length spec struct)) 0)))
|
||||
(unless raw-data
|
||||
(setq raw-data (make-vector (+ pos (bindat-length spec struct)) 0)))
|
||||
(bindat--pack-group struct spec)
|
||||
(if no-return nil (concat raw-data))))
|
||||
|
||||
|
@ -96,6 +96,7 @@
|
||||
;;
|
||||
;; (defun ewoc-create (pretty-printer &optional header footer)
|
||||
;; (defalias 'ewoc-data 'ewoc--node-data)
|
||||
;; (defun ewoc-set-data (node data)
|
||||
;; (defun ewoc-location (node)
|
||||
;; (defun ewoc-enter-first (ewoc data)
|
||||
;; (defun ewoc-enter-last (ewoc data)
|
||||
@ -106,6 +107,7 @@
|
||||
;; (defun ewoc-nth (ewoc n)
|
||||
;; (defun ewoc-map (map-function ewoc &rest args)
|
||||
;; (defun ewoc-filter (ewoc predicate &rest args)
|
||||
;; (defun ewoc-delete (ewoc &rest nodes)
|
||||
;; (defun ewoc-locate (ewoc &optional pos guess)
|
||||
;; (defun ewoc-invalidate (ewoc &rest nodes)
|
||||
;; (defun ewoc-goto-prev (ewoc arg)
|
||||
@ -255,7 +257,7 @@ NODE and leaving the new node's start there. Return the new node."
|
||||
;;; ===========================================================================
|
||||
;;; Public members of the Ewoc package
|
||||
|
||||
|
||||
;;;###autoload
|
||||
(defun ewoc-create (pretty-printer &optional header footer)
|
||||
"Create an empty ewoc.
|
||||
|
||||
@ -296,6 +298,10 @@ respectively, of the ewoc."
|
||||
|
||||
\(fn NODE)")
|
||||
|
||||
(defun ewoc-set-data (node data)
|
||||
"Set NODE to encapsulate DATA."
|
||||
(setf (ewoc--node-data node) data))
|
||||
|
||||
(defun ewoc-enter-first (ewoc data)
|
||||
"Enter DATA first in EWOC.
|
||||
Return the new node."
|
||||
@ -371,6 +377,27 @@ arguments will be passed to MAP-FUNCTION."
|
||||
(ewoc--refresh-node pp node))
|
||||
(setq node (ewoc--node-next dll node))))))
|
||||
|
||||
(defun ewoc-delete (ewoc &rest nodes)
|
||||
"Delete NODES from EWOC."
|
||||
(ewoc--set-buffer-bind-dll-let* ewoc
|
||||
((L nil) (R nil))
|
||||
(dolist (node nodes)
|
||||
;; If we are about to delete the node pointed at by last-node,
|
||||
;; set last-node to nil.
|
||||
(if (eq (ewoc--last-node ewoc) node)
|
||||
(setf (ewoc--last-node ewoc) nil))
|
||||
(delete-region (ewoc--node-start-marker node)
|
||||
(ewoc--node-start-marker (ewoc--node-next dll node)))
|
||||
(set-marker (ewoc--node-start-marker node) nil)
|
||||
(setf L (ewoc--node-left node)
|
||||
R (ewoc--node-right node)
|
||||
;; Link neighbors to each other.
|
||||
(ewoc--node-right L) R
|
||||
(ewoc--node-left R) L
|
||||
;; Forget neighbors.
|
||||
(ewoc--node-left node) nil
|
||||
(ewoc--node-right node) nil))))
|
||||
|
||||
(defun ewoc-filter (ewoc predicate &rest args)
|
||||
"Remove all elements in EWOC for which PREDICATE returns nil.
|
||||
Note that the buffer for EWOC will be current-buffer when PREDICATE
|
||||
@ -381,28 +408,13 @@ ARGS are given they will be passed to the PREDICATE."
|
||||
(ewoc--set-buffer-bind-dll-let* ewoc
|
||||
((node (ewoc--node-nth dll 1))
|
||||
(footer (ewoc--footer ewoc))
|
||||
(next nil)
|
||||
(L nil) (R nil)
|
||||
(goodbye nil)
|
||||
(inhibit-read-only t))
|
||||
(while (not (eq node footer))
|
||||
(setq next (ewoc--node-next dll node))
|
||||
(unless (apply predicate (ewoc--node-data node) args)
|
||||
;; If we are about to delete the node pointed at by last-node,
|
||||
;; set last-node to nil.
|
||||
(if (eq (ewoc--last-node ewoc) node)
|
||||
(setf (ewoc--last-node ewoc) nil))
|
||||
(delete-region (ewoc--node-start-marker node)
|
||||
(ewoc--node-start-marker (ewoc--node-next dll node)))
|
||||
(set-marker (ewoc--node-start-marker node) nil)
|
||||
(setf L (ewoc--node-left node)
|
||||
R (ewoc--node-right node)
|
||||
;; Link neighbors to each other.
|
||||
(ewoc--node-right L) R
|
||||
(ewoc--node-left R) L
|
||||
;; Forget neighbors.
|
||||
(ewoc--node-left node) nil
|
||||
(ewoc--node-right node) nil))
|
||||
(setq node next))))
|
||||
(push node goodbye))
|
||||
(setq node (ewoc--node-next dll node)))
|
||||
(apply 'ewoc-delete ewoc goodbye)))
|
||||
|
||||
(defun ewoc-locate (ewoc &optional pos guess)
|
||||
"Return the node that POS (a buffer position) is within.
|
||||
|
@ -1498,8 +1498,8 @@ shifted movement key, set `cua-highlight-region-shift-only'."
|
||||
|
||||
;;;###autoload (eval-after-load 'CUA-mode
|
||||
;;;###autoload '(error (concat "\n\n"
|
||||
;;;###autoload "CUA-mode is now part of the standard GNU Emacs distribution,\n"
|
||||
;;;###autoload "so you may now enable and customize CUA via the Options menu.\n\n"
|
||||
;;;###autoload "CUA-mode is now part of the standard GNU Emacs distribution, so you may\n"
|
||||
;;;###autoload "now enable CUA via the Options menu or by customizing option `cua-mode'.\n\n"
|
||||
;;;###autoload "You have loaded an older version of CUA-mode which does\n"
|
||||
;;;###autoload "not work correctly with this version of GNU Emacs.\n\n"
|
||||
;;;###autoload (if user-init-file (concat
|
||||
|
@ -4475,6 +4475,8 @@ See `read-file-name' for additional parameters."
|
||||
(ido-directory-too-big (and (not ido-directory-nonreadable)
|
||||
(ido-directory-too-big-p ido-current-directory)))
|
||||
(ido-work-directory-index -1)
|
||||
(ido-show-dot-for-dired (and ido-show-dot-for-dired
|
||||
(not default-filename)))
|
||||
(ido-work-file-index -1)
|
||||
(ido-find-literal nil))
|
||||
(setq ido-exit nil)
|
||||
|
@ -301,7 +301,10 @@ quite a while."
|
||||
(lambda (symbol)
|
||||
(dolist (link (get symbol 'custom-links))
|
||||
(when (memq (car link) '(custom-manual info-link))
|
||||
(if (info-xref-goto-node-p (cadr link))
|
||||
;; skip :tag part of (custom-manual :tag "Foo" "(foo)Node")
|
||||
(if (eq :tag (cadr link))
|
||||
(setq link (cddr link)))
|
||||
(if (info-xref-goto-node-p (cadr link))
|
||||
(setq good (1+ good))
|
||||
(setq bad (1+ bad))
|
||||
;; symbol-file gives nil for preloaded variables, would need
|
||||
|
11
lisp/info.el
11
lisp/info.el
@ -2907,11 +2907,20 @@ Build a menu of the possible matches."
|
||||
manuals matches node nodes)
|
||||
(let ((Info-fontify-maximum-menu-size nil))
|
||||
(Info-directory)
|
||||
;; current-node and current-file are nil when they invoke info-apropos
|
||||
;; as the first Info command, i.e. info-apropos loads info.el. In that
|
||||
;; case, we use (DIR)Top instead, to avoid signalling an error after
|
||||
;; the search is complete.
|
||||
(when (null current-node)
|
||||
(setq current-file Info-current-file)
|
||||
(setq current-node Info-current-node))
|
||||
(message "Searching indices...")
|
||||
(goto-char (point-min))
|
||||
(re-search-forward "\\* Menu: *\n" nil t)
|
||||
(while (re-search-forward "\\*.*: *(\\([^)]+\\))" nil t)
|
||||
(setq manuals (cons (match-string 1) manuals)))
|
||||
;; add-to-list makes sure we don't have duplicates in `manuals',
|
||||
;; so that the following dolist loop runs faster.
|
||||
(add-to-list 'manuals (match-string 1)))
|
||||
(dolist (manual (nreverse manuals))
|
||||
(message "Searching %s" manual)
|
||||
(condition-case err
|
||||
|
@ -624,7 +624,7 @@ the variable `rmail-mime-feature'.")
|
||||
;;;###autoload
|
||||
(defvar rmail-mime-charset-pattern
|
||||
(concat "^content-type:[ ]*text/plain;"
|
||||
"\\(?:[ \t\n]*\\(format\\|delsp\\)=\"?[-a-z0-9]+\"?;\\)*"
|
||||
"\\(?:[ \t\n]*\\(?:format\\|delsp\\)=\"?[-a-z0-9]+\"?;\\)*"
|
||||
"[ \t\n]*charset=\"?\\([^ \t\n\";]+\\)\"?")
|
||||
"Regexp to match MIME-charset specification in a header of message.
|
||||
The first parenthesized expression should match the MIME-charset name.")
|
||||
@ -1994,7 +1994,7 @@ is non-nil if the user has supplied the password interactively.
|
||||
(re-search-backward
|
||||
rmail-mime-charset-pattern
|
||||
start t))))
|
||||
(intern (downcase (match-string 2))))))
|
||||
(intern (downcase (match-string 1))))))
|
||||
(rmail-decode-region start (point) mime-charset)))))
|
||||
;; Add an X-Coding-System: header if we don't have one.
|
||||
(save-excursion
|
||||
@ -2155,7 +2155,7 @@ is non-nil if the user has supplied the password interactively.
|
||||
(re-search-backward
|
||||
rmail-mime-charset-pattern
|
||||
start t))))
|
||||
(intern (downcase (match-string 2))))))
|
||||
(intern (downcase (match-string 1))))))
|
||||
(rmail-decode-region start (point) mime-charset)))
|
||||
(save-excursion
|
||||
(goto-char start)
|
||||
|
@ -1338,6 +1338,9 @@ key, a click, or a menu-item"))
|
||||
(define-key menu-bar-manuals-menu [order-emacs-manuals]
|
||||
'(menu-item "Ordering Manuals" view-order-manuals
|
||||
:help "How to order manuals from the Free Software Foundation"))
|
||||
(define-key menu-bar-manuals-menu [info-apropos]
|
||||
'(menu-item "Lookup Subject in all manuals..." info-apropos
|
||||
:help "Find description of a subject in all installed manuals"))
|
||||
(define-key menu-bar-manuals-menu [info]
|
||||
'(menu-item "All Other Manuals (Info)" Info-directory
|
||||
:help "Read any of the installed manuals"))
|
||||
|
@ -680,6 +680,10 @@ interactively. Turn the filename into a URL with function
|
||||
(defun browse-url-file-url (file)
|
||||
"Return the URL corresponding to FILE.
|
||||
Use variable `browse-url-filename-alist' to map filenames to URLs."
|
||||
(let ((coding (and default-enable-multibyte-characters
|
||||
(or file-name-coding-system
|
||||
default-file-name-coding-system))))
|
||||
(if coding (setq file (encode-coding-string file coding))))
|
||||
;; URL-encode special chars, do % first
|
||||
(let ((s 0))
|
||||
(while (setq s (string-match "%" file s))
|
||||
|
@ -264,7 +264,7 @@ element of the list is added with `add-hook'.
|
||||
Do not change this variable directly. Use the function `c-add-style'
|
||||
to add new styles or modify existing styles (it is not a good idea to
|
||||
modify existing styles -- you should create a new style that inherits
|
||||
the existing style.")
|
||||
the existing style).")
|
||||
|
||||
|
||||
;; Functions that manipulate styles
|
||||
|
@ -812,6 +812,7 @@ macro exceeds this column then the next tab stop from that line is
|
||||
used as alignment column instead."
|
||||
:type 'integer
|
||||
:group 'c)
|
||||
;;;###autoload(put 'c-backslash-column 'safe-local-variable 'integerp)
|
||||
|
||||
(defcustom-c-stylevar c-backslash-max-column 72
|
||||
"*Maximum alignment column for line continuation backslashes.
|
||||
|
@ -3166,7 +3166,7 @@ class of the file (using s to separate nested class ids)."
|
||||
(defvar gdb-script-font-lock-keywords
|
||||
'(("^define\\s-+\\(\\(\\w\\|\\s_\\)+\\)" (1 font-lock-function-name-face))
|
||||
("\\$\\(\\w+\\)" (1 font-lock-variable-name-face))
|
||||
("^\\s-*\\(\\(\\w\\|\\s_\\)+\\)" (1 font-lock-keyword-face))))
|
||||
("^\\s-*\\(\\w\\(\\w\\|\\s_\\)*\\)" (1 font-lock-keyword-face))))
|
||||
|
||||
;; FIXME: The keyword "end" associated with "document"
|
||||
;; should have font-lock-keyword-face (currently font-lock-doc-face).
|
||||
|
@ -928,15 +928,17 @@ Return as (TOP . BOTTOM) the extent of ifdef block."
|
||||
(setq hide-ifdef-hiding t))
|
||||
(setq buffer-read-only (or hide-ifdef-read-only hif-outside-read-only)))
|
||||
|
||||
|
||||
(defun show-ifdef-block ()
|
||||
"Show the ifdef block (true or false part) enclosing or before the cursor."
|
||||
(interactive)
|
||||
(if hide-ifdef-lines
|
||||
(save-excursion
|
||||
(beginning-of-line)
|
||||
(hif-show-ifdef-region (1- (point)) (progn (end-of-line) (point))))
|
||||
(let ((top-bottom (hif-find-ifdef-block)))
|
||||
(let ((top-bottom (hif-find-ifdef-block)))
|
||||
(if hide-ifdef-lines
|
||||
(hif-show-ifdef-region
|
||||
(save-excursion
|
||||
(goto-char (car top-bottom)) (line-beginning-position))
|
||||
(save-excursion
|
||||
(goto-char (1+ (cdr top-bottom)))
|
||||
(hif-end-of-line) (point)))
|
||||
(hif-show-ifdef-region (1- (car top-bottom)) (cdr top-bottom)))))
|
||||
|
||||
|
||||
|
@ -246,6 +246,7 @@ You will be offered to complete on one of those in the minibuffer whenever
|
||||
you enter a \".\" at the beginning of a line in `makefile-mode'."
|
||||
:type '(repeat (list string))
|
||||
:group 'makefile)
|
||||
(put 'makefile-special-targets-list 'risky-local-variable t)
|
||||
|
||||
(defcustom makefile-runtime-macros-list
|
||||
'(("@") ("&") (">") ("<") ("*") ("^") ("+") ("?") ("%") ("$"))
|
||||
@ -544,7 +545,8 @@ This should identify a `make' command that can handle the `-q' option."
|
||||
:type 'string
|
||||
:group 'makefile)
|
||||
|
||||
(defcustom makefile-query-one-target-method 'makefile-query-by-make-minus-q
|
||||
(defcustom makefile-query-one-target-method-function
|
||||
'makefile-query-by-make-minus-q
|
||||
"*Function to call to determine whether a make target is up to date.
|
||||
The function must satisfy this calling convention:
|
||||
|
||||
@ -560,6 +562,8 @@ The function must satisfy this calling convention:
|
||||
makefile, any nonzero integer value otherwise."
|
||||
:type 'function
|
||||
:group 'makefile)
|
||||
(defvaralias 'makefile-query-one-target-method
|
||||
'makefile-query-one-target-method-function)
|
||||
|
||||
(defcustom makefile-up-to-date-buffer-name "*Makefile Up-to-date overview*"
|
||||
"*Name of the Up-to-date overview buffer."
|
||||
@ -670,9 +674,11 @@ The function must satisfy this calling convention:
|
||||
|
||||
(defvar makefile-target-table nil
|
||||
"Table of all target names known for this buffer.")
|
||||
(put 'makefile-target-table 'risky-local-variable t)
|
||||
|
||||
(defvar makefile-macro-table nil
|
||||
"Table of all macro names known for this buffer.")
|
||||
(put 'makefile-macro-table 'risky-local-variable t)
|
||||
|
||||
(defvar makefile-browser-client
|
||||
"A buffer in Makefile mode that is currently using the browser.")
|
||||
@ -724,11 +730,10 @@ The function must satisfy this calling convention:
|
||||
|
||||
If you are editing a file for a different make, try one of the
|
||||
variants `makefile-automake-mode', `makefile-gmake-mode',
|
||||
`makefile-makepp-mode', `makefile-bsdmake-mode' or,
|
||||
`makefile-imake-mode'All but the
|
||||
last should be correctly chosen based on the file name, except if
|
||||
it is *.mk. This function ends by invoking the function(s)
|
||||
`makefile-mode-hook'.
|
||||
`makefile-makepp-mode', `makefile-bsdmake-mode' or,
|
||||
`makefile-imake-mode'. All but the last should be correctly
|
||||
chosen based on the file name, except if it is *.mk. This
|
||||
function ends by invoking the function(s) `makefile-mode-hook'.
|
||||
|
||||
It is strongly recommended to use `font-lock-mode', because that
|
||||
provides additional parsing information. This is used for
|
||||
@ -1616,7 +1621,8 @@ with the generated name!"
|
||||
|
||||
(defun makefile-query-targets (filename target-table prereq-list)
|
||||
"Fill the up-to-date overview buffer.
|
||||
Checks each target in TARGET-TABLE using `makefile-query-one-target-method'
|
||||
Checks each target in TARGET-TABLE using
|
||||
`makefile-query-one-target-method-function'
|
||||
and generates the overview, one line per target name."
|
||||
(insert
|
||||
(mapconcat
|
||||
@ -1625,7 +1631,7 @@ and generates the overview, one line per target name."
|
||||
(no-prereqs (not (member target-name prereq-list)))
|
||||
(needs-rebuild (or no-prereqs
|
||||
(funcall
|
||||
makefile-query-one-target-method
|
||||
makefile-query-one-target-method-function
|
||||
target-name
|
||||
filename))))
|
||||
(format "\t%s%s"
|
||||
|
@ -1390,11 +1390,11 @@ with your script for an edit-interpret-debug cycle."
|
||||
(make-local-variable 'sh-shell-file)
|
||||
(make-local-variable 'sh-shell)
|
||||
(make-local-variable 'skeleton-pair-alist)
|
||||
(make-local-variable 'skeleton-pair-filter)
|
||||
(make-local-variable 'skeleton-pair-filter-function)
|
||||
(make-local-variable 'comint-dynamic-complete-functions)
|
||||
(make-local-variable 'comint-prompt-regexp)
|
||||
(make-local-variable 'font-lock-defaults)
|
||||
(make-local-variable 'skeleton-filter)
|
||||
(make-local-variable 'skeleton-filter-function)
|
||||
(make-local-variable 'skeleton-newline-indent-rigidly)
|
||||
(make-local-variable 'sh-shell-variables)
|
||||
(make-local-variable 'sh-shell-variables-initialized)
|
||||
@ -1422,10 +1422,10 @@ with your script for an edit-interpret-debug cycle."
|
||||
(font-lock-syntactic-face-function
|
||||
. sh-font-lock-syntactic-face-function))
|
||||
skeleton-pair-alist '((?` _ ?`))
|
||||
skeleton-pair-filter 'sh-quoted-p
|
||||
skeleton-pair-filter-function 'sh-quoted-p
|
||||
skeleton-further-elements '((< '(- (min sh-indentation
|
||||
(current-column)))))
|
||||
skeleton-filter 'sh-feature
|
||||
skeleton-filter-function 'sh-feature
|
||||
skeleton-newline-indent-rigidly t
|
||||
sh-indent-supported-here nil)
|
||||
(set (make-local-variable 'parse-sexp-ignore-comments) t)
|
||||
|
@ -2541,7 +2541,9 @@ to make one entry in the kill ring.
|
||||
In Lisp code, optional third arg YANK-HANDLER, if non-nil,
|
||||
specifies the yank-handler text property to be set on the killed
|
||||
text. See `insert-for-yank'."
|
||||
(interactive "r")
|
||||
;; Pass point first, then mark, because the order matters
|
||||
;; when calling kill-append.
|
||||
(interactive (list (point) (mark)))
|
||||
(condition-case nil
|
||||
(let ((string (filter-buffer-substring beg end t)))
|
||||
(when string ;STRING is nil if BEG = END
|
||||
@ -3635,10 +3637,14 @@ Outline mode sets this."
|
||||
(setq new (point))
|
||||
|
||||
;; Process intangibility within a line.
|
||||
;; Move to the chosen destination position from above,
|
||||
;; with intangibility processing enabled.
|
||||
;; With inhibit-point-motion-hooks bound to nil, a call to
|
||||
;; goto-char moves point past intangible text.
|
||||
|
||||
;; Avoid calling point-entered and point-left.
|
||||
;; However, inhibit-point-motion-hooks controls both the
|
||||
;; intangibility and the point-entered/point-left hooks. The
|
||||
;; following hack avoids calling the point-* hooks
|
||||
;; unnecessarily. Note that we move *forward* past intangible
|
||||
;; text when the initial and final points are the same.
|
||||
(goto-char new)
|
||||
(let ((inhibit-point-motion-hooks nil))
|
||||
(goto-char new)
|
||||
|
@ -39,14 +39,15 @@
|
||||
;; page 3: mirror-mode, an example for setting up paired insertion
|
||||
|
||||
|
||||
(defvar skeleton-transformation 'identity
|
||||
(defvar skeleton-transformation-function 'identity
|
||||
"*If non-nil, function applied to literal strings before they are inserted.
|
||||
It should take strings and characters and return them transformed, or nil
|
||||
which means no transformation.
|
||||
Typical examples might be `upcase' or `capitalize'.")
|
||||
(defvaralias 'skeleton-transformation 'skeleton-transformation-function)
|
||||
|
||||
; this should be a fourth argument to defvar
|
||||
(put 'skeleton-transformation 'variable-interactive
|
||||
(put 'skeleton-transformation-function 'variable-interactive
|
||||
"aTransformation function: ")
|
||||
|
||||
|
||||
@ -75,8 +76,9 @@ The variables `v1' and `v2' are still set when calling this.")
|
||||
|
||||
|
||||
;;;###autoload
|
||||
(defvar skeleton-filter 'identity
|
||||
(defvar skeleton-filter-function 'identity
|
||||
"Function for transforming a skeleton proxy's aliases' variable value.")
|
||||
(defvaralias 'skeleton-filter 'skeleton-filter-function)
|
||||
|
||||
(defvar skeleton-untabify t
|
||||
"When non-nil untabifies when deleting backwards with element -ARG.")
|
||||
@ -157,7 +159,7 @@ This command can also be an abbrev expansion (3rd and 4th columns in
|
||||
|
||||
Optional second argument STR may also be a string which will be the value
|
||||
of `str' whereas the skeleton's interactor is then ignored."
|
||||
(skeleton-insert (funcall skeleton-filter skeleton)
|
||||
(skeleton-insert (funcall skeleton-filter-function skeleton)
|
||||
;; Pretend C-x a e passed its prefix arg to us
|
||||
(if (or arg current-prefix-arg)
|
||||
(prefix-numeric-value (or arg
|
||||
@ -199,7 +201,7 @@ SKELETON is made up as (INTERACTOR ELEMENT ...). INTERACTOR may be nil if
|
||||
not needed, a prompt-string or an expression for complex read functions.
|
||||
|
||||
If ELEMENT is a string or a character it gets inserted (see also
|
||||
`skeleton-transformation'). Other possibilities are:
|
||||
`skeleton-transformation-function'). Other possibilities are:
|
||||
|
||||
\\n go to next line and indent according to mode
|
||||
_ interesting point, interregion here
|
||||
@ -360,7 +362,7 @@ automatically, and you are prompted to fill in the variable parts.")))
|
||||
(backward-delete-char-untabify (- element))
|
||||
(delete-backward-char (- element)))
|
||||
(insert (if (not literal)
|
||||
(funcall skeleton-transformation element)
|
||||
(funcall skeleton-transformation-function element)
|
||||
element))))
|
||||
((or (eq element '\n) ; actually (eq '\n 'n)
|
||||
;; The sequence `> \n' is handled specially so as to indent the first
|
||||
@ -464,7 +466,7 @@ will attempt to insert pairs of matching characters.")
|
||||
"*If this is nil, paired insertion is inhibited before or inside a word.")
|
||||
|
||||
|
||||
(defvar skeleton-pair-filter (lambda () nil)
|
||||
(defvar skeleton-pair-filter-function (lambda () nil)
|
||||
"Attempt paired insertion if this function returns nil, before inserting.
|
||||
This allows for context-sensitive checking whether pairing is appropriate.")
|
||||
|
||||
@ -490,7 +492,7 @@ Elements might be (?` ?` _ \"''\"), (?\\( ? _ \" )\") or (?{ \\n > _ \\n ?} >).
|
||||
With no ARG, if `skeleton-pair' is non-nil, pairing can occur. If the region
|
||||
is visible the pair is wrapped around it depending on `skeleton-autowrap'.
|
||||
Else, if `skeleton-pair-on-word' is non-nil or we are not before or inside a
|
||||
word, and if `skeleton-pair-filter' returns nil, pairing is performed.
|
||||
word, and if `skeleton-pair-filter-function' returns nil, pairing is performed.
|
||||
Pairing is also prohibited if we are right after a quoting character
|
||||
such as backslash.
|
||||
|
||||
@ -512,7 +514,7 @@ symmetrical ones, and the same character twice for the others."
|
||||
(and (not mark)
|
||||
(or overwrite-mode
|
||||
(if (not skeleton-pair-on-word) (looking-at "\\w"))
|
||||
(funcall skeleton-pair-filter))))
|
||||
(funcall skeleton-pair-filter-function))))
|
||||
(self-insert-command (prefix-numeric-value arg))
|
||||
(skeleton-insert (cons nil skeleton) (if mark -1))))))
|
||||
|
||||
@ -526,13 +528,13 @@ symmetrical ones, and the same character twice for the others."
|
||||
;; (kill-all-local-variables)
|
||||
;; (make-local-variable 'skeleton-pair)
|
||||
;; (make-local-variable 'skeleton-pair-on-word)
|
||||
;; (make-local-variable 'skeleton-pair-filter)
|
||||
;; (make-local-variable 'skeleton-pair-filter-function)
|
||||
;; (make-local-variable 'skeleton-pair-alist)
|
||||
;; (setq major-mode 'mirror-mode
|
||||
;; mode-name "Mirror"
|
||||
;; skeleton-pair-on-word t
|
||||
;; ;; in the middle column insert one or none if odd window-width
|
||||
;; skeleton-pair-filter (lambda ()
|
||||
;; skeleton-pair-filter-function (lambda ()
|
||||
;; (if (>= (current-column)
|
||||
;; (/ (window-width) 2))
|
||||
;; ;; insert both on next line
|
||||
|
@ -1616,7 +1616,10 @@ in `selection-converter-alist', which see."
|
||||
(let ((ae (mac-event-ae event)))
|
||||
(dolist (file-name (mac-ae-list ae nil 'undecoded-file-name))
|
||||
(if file-name
|
||||
(dnd-open-local-file (concat "file:" file-name) nil)))
|
||||
(dnd-open-local-file
|
||||
(concat "file://"
|
||||
(mapconcat 'url-hexify-string
|
||||
(split-string file-name "/") "/")) nil)))
|
||||
(let ((selection-range (mac-ae-selection-range ae))
|
||||
(search-text (mac-ae-text-for-search ae)))
|
||||
(cond (selection-range
|
||||
|
@ -112,6 +112,14 @@ Switch to a buffer editing the last file dropped."
|
||||
(if (and (> x 0) (> y 0))
|
||||
(set-frame-selected-window nil window))
|
||||
(mapcar (lambda (file-name)
|
||||
(let ((f (subst-char-in-string ?\\ ?/ file-name))
|
||||
(coding (or file-name-coding-system
|
||||
default-file-name-coding-system)))
|
||||
(setq file-name
|
||||
(mapconcat 'url-hexify-string
|
||||
(split-string (encode-coding-string f coding)
|
||||
"/")
|
||||
"/")))
|
||||
(dnd-handle-one-url window 'private
|
||||
(concat "file:" file-name)))
|
||||
(car (cdr (cdr event)))))
|
||||
|
@ -365,10 +365,11 @@ Example:
|
||||
"*If in X Windows, use this pointer shape while drawing with the mouse.")
|
||||
|
||||
|
||||
(defcustom artist-text-renderer 'artist-figlet
|
||||
(defcustom artist-text-renderer-function 'artist-figlet
|
||||
"Function for doing text rendering."
|
||||
:group 'artist-text
|
||||
:type 'symbol)
|
||||
(defvaralias 'artist-text-renderer 'artist-text-renderer-function)
|
||||
|
||||
|
||||
(defcustom artist-figlet-program "figlet"
|
||||
@ -2910,23 +2911,25 @@ Let blanks in TEXT overwrite any text already in the buffer."
|
||||
|
||||
(defun artist-text-see-thru (x y)
|
||||
"Prompt for text to render, render it at X,Y.
|
||||
This is done by calling the function specified by `artist-text-renderer',
|
||||
which must return a list of strings, to be inserted in the buffer.
|
||||
This is done by calling the function specified by
|
||||
`artist-text-renderer-function', which must return a list of strings,
|
||||
to be inserted in the buffer.
|
||||
|
||||
Text already in the buffer ``shines thru'' blanks in the rendered text."
|
||||
(let* ((input-text (read-string "Type text to render: "))
|
||||
(rendered-text (artist-funcall artist-text-renderer input-text)))
|
||||
(rendered-text (artist-funcall artist-text-renderer-function input-text)))
|
||||
(artist-text-insert-see-thru x y rendered-text)))
|
||||
|
||||
|
||||
(defun artist-text-overwrite (x y)
|
||||
"Prompt for text to render, render it at X,Y.
|
||||
This is done by calling the function specified by `artist-text-renderer',
|
||||
which must return a list of strings, to be inserted in the buffer.
|
||||
This is done by calling the function specified by
|
||||
`artist-text-renderer-function', which must return a list of strings,
|
||||
to be inserted in the buffer.
|
||||
|
||||
Blanks in the rendered text overwrites any text in the buffer."
|
||||
(let* ((input-text (read-string "Type text to render: "))
|
||||
(rendered-text (artist-funcall artist-text-renderer input-text)))
|
||||
(rendered-text (artist-funcall artist-text-renderer-function input-text)))
|
||||
(artist-text-insert-overwrite x y rendered-text)))
|
||||
|
||||
;;
|
||||
|
@ -87,7 +87,7 @@ If this is a function, call it to generate the initial field text."
|
||||
:type '(choice (const :tag "None" nil)
|
||||
(string :tag "Initial text")
|
||||
(function :tag "Initialize Function" :value fun)
|
||||
(other :tag "Default" t)))
|
||||
(const :tag "Default" t)))
|
||||
(put 'bibtex-include-OPTkey 'risky-local-variable t)
|
||||
|
||||
(defcustom bibtex-user-optional-fields
|
||||
@ -153,7 +153,7 @@ narrowed to just the entry."
|
||||
(defcustom bibtex-maintain-sorted-entries nil
|
||||
"If non-nil, BibTeX mode maintains all entries in sorted order.
|
||||
Allowed non-nil values are:
|
||||
plain All entries are sorted alphabetically.
|
||||
plain or t All entries are sorted alphabetically.
|
||||
crossref All entries are sorted alphabetically unless an entry has a
|
||||
crossref field. These crossrefed entries are placed in
|
||||
alphabetical order immediately preceding the main entry.
|
||||
@ -165,7 +165,10 @@ See also `bibtex-sort-ignore-string-entries'."
|
||||
:type '(choice (const nil)
|
||||
(const plain)
|
||||
(const crossref)
|
||||
(const entry-class)))
|
||||
(const entry-class)
|
||||
(const t)))
|
||||
(put 'bibtex-maintain-sorted-entries 'safe-local-variable
|
||||
'(lambda (a) (memq a '(nil t plain crossref entry-class))))
|
||||
|
||||
(defcustom bibtex-sort-entry-class
|
||||
'(("String")
|
||||
@ -1800,7 +1803,8 @@ Formats current entry according to variable `bibtex-entry-format'."
|
||||
|
||||
;; identify entry type
|
||||
(goto-char (point-min))
|
||||
(re-search-forward bibtex-entry-type)
|
||||
(or (re-search-forward bibtex-entry-type nil t)
|
||||
(error "Not inside a BibTeX entry"))
|
||||
(let ((beg-type (1+ (match-beginning 0)))
|
||||
(end-type (match-end 0)))
|
||||
(setq entry-list (assoc-string (buffer-substring-no-properties
|
||||
@ -3876,7 +3880,8 @@ At end of the cleaning process, the functions in
|
||||
(interactive "P")
|
||||
(let ((case-fold-search t)
|
||||
(start (bibtex-beginning-of-entry))
|
||||
(_ (looking-at bibtex-any-entry-maybe-empty-head))
|
||||
(_ (or (looking-at bibtex-any-entry-maybe-empty-head)
|
||||
(error "Not inside a BibTeX entry")))
|
||||
(entry-type (bibtex-type-in-head))
|
||||
(key (bibtex-key-in-head)))
|
||||
;; formatting
|
||||
|
@ -271,21 +271,23 @@ If `flyspell-large-region' is nil, all regions are treated as small."
|
||||
;;* using flyspell with mail-mode add the following expression */
|
||||
;;* in your .emacs file: */
|
||||
;;* (add-hook 'mail-mode */
|
||||
;;* '(lambda () (setq flyspell-generic-check-word-p */
|
||||
;;* 'mail-mode-flyspell-verify))) */
|
||||
;;* '(lambda () (setq flyspell-generic-check-word-predicate */
|
||||
;;* 'mail-mode-flyspell-verify))) */
|
||||
;;*---------------------------------------------------------------------*/
|
||||
(defvar flyspell-generic-check-word-p nil
|
||||
(defvar flyspell-generic-check-word-predicate nil
|
||||
"Function providing per-mode customization over which words are flyspelled.
|
||||
Returns t to continue checking, nil otherwise.
|
||||
Flyspell mode sets this variable to whatever is the `flyspell-mode-predicate'
|
||||
property of the major mode name.")
|
||||
(make-variable-buffer-local 'flyspell-generic-check-word-p)
|
||||
(make-variable-buffer-local 'flyspell-generic-check-word-predicate)
|
||||
(defvaralias 'flyspell-generic-check-word-p
|
||||
'flyspell-generic-check-word-predicate)
|
||||
|
||||
;;*--- mail mode -------------------------------------------------------*/
|
||||
(put 'mail-mode 'flyspell-mode-predicate 'mail-mode-flyspell-verify)
|
||||
(put 'message-mode 'flyspell-mode-predicate 'mail-mode-flyspell-verify)
|
||||
(defun mail-mode-flyspell-verify ()
|
||||
"This function is used for `flyspell-generic-check-word-p' in Mail mode."
|
||||
"Function used for `flyspell-generic-check-word-predicate' in Mail mode."
|
||||
(let ((header-end (save-excursion
|
||||
(goto-char (point-min))
|
||||
(re-search-forward
|
||||
@ -313,7 +315,7 @@ property of the major mode name.")
|
||||
;;*--- texinfo mode ----------------------------------------------------*/
|
||||
(put 'texinfo-mode 'flyspell-mode-predicate 'texinfo-mode-flyspell-verify)
|
||||
(defun texinfo-mode-flyspell-verify ()
|
||||
"This function is used for `flyspell-generic-check-word-p' in Texinfo mode."
|
||||
"Function used for `flyspell-generic-check-word-predicate' in Texinfo mode."
|
||||
(save-excursion
|
||||
(forward-word -1)
|
||||
(not (looking-at "@"))))
|
||||
@ -321,7 +323,7 @@ property of the major mode name.")
|
||||
;;*--- tex mode --------------------------------------------------------*/
|
||||
(put 'tex-mode 'flyspell-mode-predicate 'tex-mode-flyspell-verify)
|
||||
(defun tex-mode-flyspell-verify ()
|
||||
"This function is used for `flyspell-generic-check-word-p' in LaTeX mode."
|
||||
"Function used for `flyspell-generic-check-word-predicate' in LaTeX mode."
|
||||
(and
|
||||
(not (save-excursion
|
||||
(re-search-backward "^[ \t]*%%%[ \t]+Local" nil t)))
|
||||
@ -338,7 +340,7 @@ property of the major mode name.")
|
||||
(put 'html-mode 'flyspell-mode-predicate 'sgml-mode-flyspell-verify)
|
||||
|
||||
(defun sgml-mode-flyspell-verify ()
|
||||
"This function is used for `flyspell-generic-check-word-p' in SGML mode."
|
||||
"Function used for `flyspell-generic-check-word-predicate' in SGML mode."
|
||||
(not (save-excursion
|
||||
(let ((this (point-marker))
|
||||
(s (progn (beginning-of-line) (point-marker)))
|
||||
@ -368,7 +370,7 @@ property of the major mode name.")
|
||||
"Faces corresponding to text in programming-mode buffers.")
|
||||
|
||||
(defun flyspell-generic-progmode-verify ()
|
||||
"Used for `flyspell-generic-check-word-p' in programming modes."
|
||||
"Used for `flyspell-generic-check-word-predicate' in programming modes."
|
||||
(let ((f (get-text-property (point) 'face)))
|
||||
(memq f flyspell-prog-text-faces)))
|
||||
|
||||
@ -376,7 +378,8 @@ property of the major mode name.")
|
||||
(defun flyspell-prog-mode ()
|
||||
"Turn on `flyspell-mode' for comments and strings."
|
||||
(interactive)
|
||||
(setq flyspell-generic-check-word-p 'flyspell-generic-progmode-verify)
|
||||
(setq flyspell-generic-check-word-predicate
|
||||
'flyspell-generic-progmode-verify)
|
||||
(flyspell-mode 1)
|
||||
(run-hooks 'flyspell-prog-mode-hook))
|
||||
|
||||
@ -563,10 +566,10 @@ in your .emacs file.
|
||||
(add-hook 'pre-command-hook (function flyspell-pre-command-hook) t t)
|
||||
;; we bound flyspell action to after-change hook
|
||||
(add-hook 'after-change-functions 'flyspell-after-change-function nil t)
|
||||
;; set flyspell-generic-check-word-p based on the major mode
|
||||
;; set flyspell-generic-check-word-predicate based on the major mode
|
||||
(let ((mode-predicate (get major-mode 'flyspell-mode-predicate)))
|
||||
(if mode-predicate
|
||||
(setq flyspell-generic-check-word-p mode-predicate)))
|
||||
(setq flyspell-generic-check-word-predicate mode-predicate)))
|
||||
;; the welcome message
|
||||
(if (and flyspell-issue-message-flag
|
||||
flyspell-issue-welcome-flag
|
||||
@ -979,8 +982,8 @@ Mostly we check word delimiters."
|
||||
(flyspell-word (flyspell-get-word following))
|
||||
start end poss word)
|
||||
(if (or (eq flyspell-word nil)
|
||||
(and (fboundp flyspell-generic-check-word-p)
|
||||
(not (funcall flyspell-generic-check-word-p))))
|
||||
(and (fboundp flyspell-generic-check-word-predicate)
|
||||
(not (funcall flyspell-generic-check-word-predicate))))
|
||||
t
|
||||
(progn
|
||||
;; destructure return flyspell-word info list.
|
||||
|
@ -416,11 +416,12 @@ The following values are supported:
|
||||
:type 'boolean
|
||||
:group 'ispell)
|
||||
|
||||
(defcustom ispell-format-word (function upcase)
|
||||
(defcustom ispell-format-word-function (function upcase)
|
||||
"*Formatting function for displaying word being spell checked.
|
||||
The function must take one string argument and return a string."
|
||||
:type 'function
|
||||
:group 'ispell)
|
||||
(defvaralias 'ispell-format-word 'ispell-format-word-function)
|
||||
|
||||
(defcustom ispell-use-framepop-p nil
|
||||
"When non-nil ispell uses framepop to display choices in a dedicated frame.
|
||||
@ -1595,7 +1596,7 @@ quit spell session exited."
|
||||
;; But that is silly; if the user asks for it, we should do it. - rms.
|
||||
(or quietly
|
||||
(message "Checking spelling of %s..."
|
||||
(funcall ispell-format-word word)))
|
||||
(funcall ispell-format-word-function word)))
|
||||
(ispell-send-string "%\n") ; put in verbose mode
|
||||
(ispell-send-string (concat "^" word "\n"))
|
||||
;; wait until ispell has processed word
|
||||
@ -1611,7 +1612,7 @@ quit spell session exited."
|
||||
(cond ((eq poss t)
|
||||
(or quietly
|
||||
(message "%s is correct"
|
||||
(funcall ispell-format-word word)))
|
||||
(funcall ispell-format-word-function word)))
|
||||
(and (fboundp 'extent-at)
|
||||
(extent-at start)
|
||||
(and (fboundp 'delete-extent)
|
||||
@ -1619,8 +1620,8 @@ quit spell session exited."
|
||||
((stringp poss)
|
||||
(or quietly
|
||||
(message "%s is correct because of root %s"
|
||||
(funcall ispell-format-word word)
|
||||
(funcall ispell-format-word poss)))
|
||||
(funcall ispell-format-word-function word)
|
||||
(funcall ispell-format-word-function poss)))
|
||||
(and (fboundp 'extent-at)
|
||||
(extent-at start)
|
||||
(and (fboundp 'delete-extent)
|
||||
@ -1633,7 +1634,8 @@ quit spell session exited."
|
||||
(set-extent-property ext 'face ispell-highlight-face)
|
||||
(set-extent-property ext 'priority 2000)))
|
||||
(beep)
|
||||
(message "%s is incorrect"(funcall ispell-format-word word))))
|
||||
(message "%s is incorrect"
|
||||
(funcall ispell-format-word-function word))))
|
||||
(t ; prompt for correct word.
|
||||
(save-window-excursion
|
||||
(setq replace (ispell-command-loop
|
||||
@ -3359,6 +3361,7 @@ Don't read buffer-local settings or word lists."
|
||||
"*End of text which will be checked in `ispell-message'.
|
||||
If it is a string, limit at first occurrence of that regular expression.
|
||||
Otherwise, it must be a function which is called to get the limit.")
|
||||
(put 'ispell-message-text-end 'risky-local-variable t)
|
||||
|
||||
|
||||
(defun ispell-mime-multipartp (&optional limit)
|
||||
|
@ -49,13 +49,14 @@
|
||||
:type 'integer
|
||||
:group 'sgml)
|
||||
|
||||
(defcustom sgml-transformation 'identity
|
||||
"*Default value for `skeleton-transformation' (which see) in SGML mode."
|
||||
(defcustom sgml-transformation-function 'identity
|
||||
"*Default value for `skeleton-transformation-function' in SGML mode."
|
||||
:type 'function
|
||||
:group 'sgml)
|
||||
|
||||
(put 'sgml-transformation 'variable-interactive
|
||||
(put 'sgml-transformation-function 'variable-interactive
|
||||
"aTransformation function: ")
|
||||
(defvaralias 'sgml-transformation 'sgml-transformation-function)
|
||||
|
||||
(defcustom sgml-mode-hook nil
|
||||
"Hook run by command `sgml-mode'.
|
||||
@ -335,6 +336,7 @@ an optional alist of possible values."
|
||||
:type '(repeat (cons (string :tag "Tag Name")
|
||||
(repeat :tag "Tag Rule" sexp)))
|
||||
:group 'sgml)
|
||||
(put 'sgml-tag-alist 'risky-local-variable t)
|
||||
|
||||
(defcustom sgml-tag-help
|
||||
'(("!" . "Empty declaration for comment")
|
||||
@ -391,7 +393,7 @@ a DOCTYPE or an XML declaration."
|
||||
(defun sgml-mode-facemenu-add-face-function (face end)
|
||||
(if (setq face (cdr (assq face sgml-face-tag-alist)))
|
||||
(progn
|
||||
(setq face (funcall skeleton-transformation face))
|
||||
(setq face (funcall skeleton-transformation-function face))
|
||||
(setq facemenu-end-add-face (concat "</" face ">"))
|
||||
(concat "<" face ">"))
|
||||
(error "Face not configured for %s mode" mode-name)))
|
||||
@ -415,8 +417,8 @@ An argument of N to a tag-inserting command means to wrap it around
|
||||
the next N words. In Transient Mark mode, when the mark is active,
|
||||
N defaults to -1, which means to wrap it around the current region.
|
||||
|
||||
If you like upcased tags, put (setq sgml-transformation 'upcase) in
|
||||
your `.emacs' file.
|
||||
If you like upcased tags, put (setq sgml-transformation-function 'upcase)
|
||||
in your `.emacs' file.
|
||||
|
||||
Use \\[sgml-validate] to validate your document with an SGML parser.
|
||||
|
||||
@ -460,7 +462,8 @@ Do \\[describe-key] on the following bindings to discover what they do.
|
||||
(sgml-xml-guess)
|
||||
(if sgml-xml-mode
|
||||
(setq mode-name "XML")
|
||||
(set (make-local-variable 'skeleton-transformation) sgml-transformation))
|
||||
(set (make-local-variable 'skeleton-transformation-function)
|
||||
sgml-transformation-function))
|
||||
;; This will allow existing comments within declarations to be
|
||||
;; recognized.
|
||||
(set (make-local-variable 'comment-start-skip) "\\(?:<!\\)?--[ \t]*")
|
||||
@ -604,9 +607,9 @@ This only works for Latin-1 input."
|
||||
(if sgml-name-8bit-mode "ON" "OFF")))
|
||||
|
||||
;; When an element of a skeleton is a string "str", it is passed
|
||||
;; through skeleton-transformation and inserted. If "str" is to be
|
||||
;; inserted literally, one should obtain it as the return value of a
|
||||
;; function, e.g. (identity "str").
|
||||
;; through `skeleton-transformation-function' and inserted.
|
||||
;; If "str" is to be inserted literally, one should obtain it as
|
||||
;; the return value of a function, e.g. (identity "str").
|
||||
|
||||
(defvar sgml-tag-last nil)
|
||||
(defvar sgml-tag-history nil)
|
||||
@ -614,9 +617,10 @@ This only works for Latin-1 input."
|
||||
"Prompt for a tag and insert it, optionally with attributes.
|
||||
Completion and configuration are done according to `sgml-tag-alist'.
|
||||
If you like tags and attributes in uppercase do \\[set-variable]
|
||||
skeleton-transformation RET upcase RET, or put this in your `.emacs':
|
||||
(setq sgml-transformation 'upcase)"
|
||||
(funcall (or skeleton-transformation 'identity)
|
||||
`skeleton-transformation-function' RET `upcase' RET, or put this
|
||||
in your `.emacs':
|
||||
(setq sgml-transformation-function 'upcase)"
|
||||
(funcall (or skeleton-transformation-function 'identity)
|
||||
(setq sgml-tag-last
|
||||
(completing-read
|
||||
(if (> (length sgml-tag-last) 0)
|
||||
@ -639,7 +643,7 @@ skeleton-transformation RET upcase RET, or put this in your `.emacs':
|
||||
;; For xhtml's `tr' tag, we should maybe use \n instead.
|
||||
(if (eq v2 t) (setq v2 nil))
|
||||
;; We use `identity' to prevent skeleton from passing
|
||||
;; `str' through skeleton-transformation a second time.
|
||||
;; `str' through `skeleton-transformation-function' a second time.
|
||||
'(("") v2 _ v2 "</" (identity ',str) ?>))
|
||||
((eq (car v2) t)
|
||||
(cons '("") (cdr v2)))
|
||||
@ -670,12 +674,12 @@ If QUIET, do not print a message when there are no attributes for TAG."
|
||||
(if (stringp (car alist))
|
||||
(progn
|
||||
(insert (if (eq (preceding-char) ?\s) "" ?\s)
|
||||
(funcall skeleton-transformation (car alist)))
|
||||
(funcall skeleton-transformation-function (car alist)))
|
||||
(sgml-value alist))
|
||||
(setq i (length alist))
|
||||
(while (> i 0)
|
||||
(insert ?\s)
|
||||
(insert (funcall skeleton-transformation
|
||||
(insert (funcall skeleton-transformation-function
|
||||
(setq attribute
|
||||
(skeleton-read '(completing-read
|
||||
"Attribute: "
|
||||
@ -1981,12 +1985,12 @@ Can be used as a value for `html-mode-hook'."
|
||||
"\" name=\"" (or v1 (setq v1 (skeleton-read "Name: ")))
|
||||
"\" value=\"" str ?\"
|
||||
(when (y-or-n-p "Set \"checked\" attribute? ")
|
||||
(funcall skeleton-transformation
|
||||
(funcall skeleton-transformation-function
|
||||
(if sgml-xml-mode " checked=\"checked\"" " checked")))
|
||||
(if sgml-xml-mode " />" ">")
|
||||
(skeleton-read "Text: " (capitalize str))
|
||||
(or v2 (setq v2 (if (y-or-n-p "Newline after text? ")
|
||||
(funcall skeleton-transformation
|
||||
(funcall skeleton-transformation-function
|
||||
(if sgml-xml-mode "<br />" "<br>"))
|
||||
"")))
|
||||
\n))
|
||||
@ -2001,12 +2005,12 @@ Can be used as a value for `html-mode-hook'."
|
||||
"\" name=\"" (or (car v2) (setcar v2 (skeleton-read "Name: ")))
|
||||
"\" value=\"" str ?\"
|
||||
(when (and (not v1) (setq v1 (y-or-n-p "Set \"checked\" attribute? ")))
|
||||
(funcall skeleton-transformation
|
||||
(funcall skeleton-transformation-function
|
||||
(if sgml-xml-mode " checked=\"checked\"" " checked")))
|
||||
(if sgml-xml-mode " />" ">")
|
||||
(skeleton-read "Text: " (capitalize str))
|
||||
(or (cdr v2) (setcdr v2 (if (y-or-n-p "Newline after text? ")
|
||||
(funcall skeleton-transformation
|
||||
(funcall skeleton-transformation-function
|
||||
(if sgml-xml-mode "<br />" "<br>"))
|
||||
"")))
|
||||
\n))
|
||||
|
@ -976,7 +976,7 @@ displayed."
|
||||
(defun tumme-tag-files (arg)
|
||||
"Tag marked file(s) in dired. With prefix ARG, tag file at point."
|
||||
(interactive "P")
|
||||
(let ((tag (read-string "Tag to add: "))
|
||||
(let ((tag (read-string "Tags to add (separate tags with a semicolon): "))
|
||||
curr-file files)
|
||||
(if arg
|
||||
(setq files (dired-get-filename))
|
||||
@ -986,7 +986,7 @@ displayed."
|
||||
(defun tumme-tag-thumbnail ()
|
||||
"Tag current thumbnail."
|
||||
(interactive)
|
||||
(let ((tag (read-string "Tag to add: ")))
|
||||
(let ((tag (read-string "Tags to add (separate tags with a semicolon): ")))
|
||||
(tumme-write-tag (tumme-original-file-name) tag))
|
||||
(tumme-update-property
|
||||
'tags (tumme-list-tags (tumme-original-file-name))))
|
||||
|
@ -257,14 +257,20 @@ STRING is the uri-list as a string. The URIs are separated by \r\n."
|
||||
retval))
|
||||
|
||||
(defun x-dnd-handle-file-name (window action string)
|
||||
"Prepend file:// to file names and call `dnd-handle-one-url'.
|
||||
"Convert file names to URLs and call `dnd-handle-one-url'.
|
||||
WINDOW is the window where the drop happened.
|
||||
STRING is the file names as a string, separated by nulls."
|
||||
(let ((uri-list (split-string string "[\0\r\n]" t))
|
||||
(coding (and default-enable-multibyte-characters
|
||||
(or file-name-coding-system
|
||||
default-file-name-coding-system)))
|
||||
retval)
|
||||
(dolist (bf uri-list)
|
||||
;; If one URL is handeled, treat as if the whole drop succeeded.
|
||||
(let* ((file-uri (concat "file://" bf))
|
||||
(if coding (setq bf (encode-coding-string bf coding)))
|
||||
(let* ((file-uri (concat "file://"
|
||||
(mapconcat 'url-hexify-string
|
||||
(split-string bf "/") "/")))
|
||||
(did-action (dnd-handle-one-url window action file-uri)))
|
||||
(when did-action (setq retval did-action))))
|
||||
retval))
|
||||
|
@ -1,3 +1,33 @@
|
||||
2006-05-23 Luc Teirlinck <teirllm@auburn.edu>
|
||||
|
||||
* frames.texi (Pointer Shape): @end table -> @end defvar.
|
||||
|
||||
2006-05-22 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* elisp.texi (Top): Update subnode menus.
|
||||
|
||||
* frames.texi (Pointer Shape): Node renamed from Pointer Shapes.
|
||||
Contents rewritten; material from old Pointer Shape node moved here.
|
||||
|
||||
* display.texi (Pointer Shape): Node deleted.
|
||||
(Image Descriptors): Minor cleanup.
|
||||
|
||||
2006-05-21 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* syntax.texi (Parsing Expressions): Update info on which STATE
|
||||
elements are ignored.
|
||||
|
||||
2006-05-19 Luc Teirlinck <teirllm@auburn.edu>
|
||||
|
||||
* hooks.texi (Standard Hooks): Correct typo.
|
||||
|
||||
* gpl.texi (GPL): ifinfo -> ifnottex.
|
||||
|
||||
2006-05-19 Michael Ernst <mernst@alum.mit.edu> (tiny change)
|
||||
|
||||
* searching.texi (Simple Match Data): Warn about match data being
|
||||
set anew by every search.
|
||||
|
||||
2006-05-17 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* minibuf.texi (Minibuffer History): Clarify.
|
||||
|
@ -26,7 +26,6 @@ that Emacs presents to the user.
|
||||
font, colors, etc.
|
||||
* Fringes:: Controlling window fringes.
|
||||
* Scroll Bars:: Controlling vertical scroll bars.
|
||||
* Pointer Shape:: Controlling the mouse pointer shape.
|
||||
* Display Property:: Enabling special display features.
|
||||
* Images:: Displaying images in Emacs buffers.
|
||||
* Buttons:: Adding clickable buttons to Emacs buffers.
|
||||
@ -3193,26 +3192,6 @@ buffer's scroll bars, measured in pixels. A value of @code{nil} means
|
||||
to use the value specified by the frame.
|
||||
@end defvar
|
||||
|
||||
@node Pointer Shape
|
||||
@section Pointer Shape
|
||||
|
||||
Normally, the mouse pointer has the @code{text} shape over text and
|
||||
the @code{arrow} shape over window areas which do not correspond to
|
||||
any buffer text. You can specify the mouse pointer shape over text or
|
||||
images via the @code{pointer} text property, and for images with the
|
||||
@code{:pointer} and @code{:map} image properties.
|
||||
|
||||
The available pointer shapes are: @code{text} (or @code{nil}),
|
||||
@code{arrow}, @code{hand}, @code{vdrag}, @code{hdrag},
|
||||
@code{modeline}, and @code{hourglass}.
|
||||
|
||||
@defvar void-text-area-pointer
|
||||
@tindex void-text-area-pointer
|
||||
This variable specifies the mouse pointer shape in void text areas,
|
||||
i.e. the areas after the end of a line or below the last line in the
|
||||
buffer. The default is to use the @code{arrow} (non-text) pointer.
|
||||
@end defvar
|
||||
|
||||
@node Display Property
|
||||
@section The @code{display} Property
|
||||
@cindex display specification
|
||||
@ -3841,11 +3820,11 @@ A polygon is a cons
|
||||
@code{(poly . [@var{x0} @var{y0} @var{x1} @var{y1} ...])}
|
||||
where each pair in the vector describes one corner in the polygon.
|
||||
|
||||
When the mouse pointer is above a hot-spot area of an image, the
|
||||
When the mouse pointer lies on a hot-spot area of an image, the
|
||||
@var{plist} of that hot-spot is consulted; if it contains a @code{help-echo}
|
||||
property it defines a tool-tip for the hot-spot, and if it contains
|
||||
a @code{pointer} property, it defines the shape of the mouse cursor when
|
||||
it is over the hot-spot.
|
||||
property, that defines a tool-tip for the hot-spot, and if it contains
|
||||
a @code{pointer} property, that defines the shape of the mouse cursor when
|
||||
it is on the hot-spot.
|
||||
@xref{Pointer Shape}, for available pointer shapes.
|
||||
|
||||
When you click the mouse when the mouse pointer is over a hot-spot, an
|
||||
|
@ -784,7 +784,7 @@ Frames
|
||||
* Mouse Position:: Asking where the mouse is, or moving it.
|
||||
* Pop-Up Menus:: Displaying a menu for the user to select from.
|
||||
* Dialog Boxes:: Displaying a box to ask yes or no.
|
||||
* Pointer Shapes:: Specifying the shape of the mouse pointer.
|
||||
* Pointer Shape:: Specifying the shape of the mouse pointer.
|
||||
* Window System Selections::Transferring text to and from other windows.
|
||||
* Color Names:: Getting the definitions of color names.
|
||||
* Text Terminal Colors:: Defining colors for text-only terminals.
|
||||
@ -1003,7 +1003,6 @@ Emacs Display
|
||||
for text characters: font, colors, etc.
|
||||
* Fringes:: Controlling window fringes.
|
||||
* Scroll Bars:: Controlling vertical scroll bars.
|
||||
* Pointer Shape:: Controlling the mouse pointer shape.
|
||||
* Display Property:: Enabling special display features.
|
||||
* Images:: Displaying images in Emacs buffers.
|
||||
* Buttons:: Adding clickable buttons to Emacs buffers.
|
||||
|
@ -62,7 +62,7 @@ The frame is displayed on an MS-DOS terminal.
|
||||
* Mouse Position:: Asking where the mouse is, or moving it.
|
||||
* Pop-Up Menus:: Displaying a menu for the user to select from.
|
||||
* Dialog Boxes:: Displaying a box to ask yes or no.
|
||||
* Pointer Shapes:: Specifying the shape of the mouse pointer.
|
||||
* Pointer Shape:: Specifying the shape of the mouse pointer.
|
||||
* Window System Selections:: Transferring text to and from other X clients.
|
||||
* Drag and Drop:: Internals of Drag-and-Drop implementation.
|
||||
* Color Names:: Getting the definitions of color names.
|
||||
@ -1564,30 +1564,49 @@ for instance using the window manager, then this produces a quit and
|
||||
@code{x-popup-dialog} does not return.
|
||||
@end defun
|
||||
|
||||
@node Pointer Shapes
|
||||
@section Pointer Shapes
|
||||
@node Pointer Shape
|
||||
@section Pointer Shape
|
||||
@cindex pointer shape
|
||||
@cindex mouse pointer shape
|
||||
|
||||
These variables specify which shape to use for the mouse pointer in
|
||||
various situations, when using the X Window System:
|
||||
You can specify the mouse pointer style for particular text or
|
||||
images using the @code{pointer} text property, and for images with the
|
||||
@code{:pointer} and @code{:map} image properties. The values you can
|
||||
use in these properties are @code{text} (or @code{nil}), @code{arrow},
|
||||
@code{hand}, @code{vdrag}, @code{hdrag}, @code{modeline}, and
|
||||
@code{hourglass}. @code{text} stands for the usual mouse pointer
|
||||
style used over text.
|
||||
|
||||
@table @code
|
||||
@item x-pointer-shape
|
||||
@vindex x-pointer-shape
|
||||
This variable specifies the pointer shape to use ordinarily in the Emacs
|
||||
frame.
|
||||
Over void parts of the window (parts that do not correspond to any
|
||||
of the buffer contents), the mouse pointer usually uses the
|
||||
@code{arrow} style, but you can specify a different style (one of
|
||||
those above) by setting @code{void-text-area-pointer}.
|
||||
|
||||
@item x-sensitive-text-pointer-shape
|
||||
@vindex x-sensitive-text-pointer-shape
|
||||
@defvar void-text-area-pointer
|
||||
@tindex void-text-area-pointer
|
||||
This variable specifies the mouse pointer style for void text areas.
|
||||
These include the areas after the end of a line or below the last line
|
||||
in the buffer. The default is to use the @code{arrow} (non-text)
|
||||
pointer style.
|
||||
@end defvar
|
||||
|
||||
You can specify what the @code{text} pointer style really looks like
|
||||
by setting the variable @code{x-pointer-shape}.
|
||||
|
||||
@defvar x-pointer-shape
|
||||
This variable specifies the pointer shape to use ordinarily in the
|
||||
Emacs frame, for the @code{text} pointer style.
|
||||
@end defvar
|
||||
|
||||
@defvar x-sensitive-text-pointer-shape
|
||||
This variable specifies the pointer shape to use when the mouse
|
||||
is over mouse-sensitive text.
|
||||
@end table
|
||||
@end defvar
|
||||
|
||||
These variables affect newly created frames. They do not normally
|
||||
affect existing frames; however, if you set the mouse color of a frame,
|
||||
that also updates its pointer shapes based on the current values of
|
||||
these variables. @xref{Color Parameters}.
|
||||
affect existing frames; however, if you set the mouse color of a
|
||||
frame, that also installs the current value of those two variables.
|
||||
@xref{Color Parameters}.
|
||||
|
||||
The values you can use, to specify either of these pointer shapes, are
|
||||
defined in the file @file{lisp/term/x-win.el}. Use @kbd{M-x apropos
|
||||
|
@ -67,9 +67,9 @@ modification follow.
|
||||
@iftex
|
||||
@unnumberedsec Terms and Conditions for Copying, Distribution and Modification
|
||||
@end iftex
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
@center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
|
||||
@enumerate 0
|
||||
@item
|
||||
@ -292,9 +292,9 @@ of promoting the sharing and reuse of software generally.
|
||||
@iftex
|
||||
@heading NO WARRANTY
|
||||
@end iftex
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
@center NO WARRANTY
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
|
||||
@item
|
||||
BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
@ -322,9 +322,9 @@ POSSIBILITY OF SUCH DAMAGES.
|
||||
@iftex
|
||||
@heading END OF TERMS AND CONDITIONS
|
||||
@end iftex
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
@center END OF TERMS AND CONDITIONS
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
|
||||
@page
|
||||
@unnumberedsec How to Apply These Terms to Your New Programs
|
||||
|
@ -305,7 +305,7 @@ Manual}.
|
||||
|
||||
@item today-invisible-calendar-hook
|
||||
@iftex
|
||||
@infref{Calendar Customizing,, emacs-xtra}.
|
||||
@inforef{Calendar Customizing,, emacs-xtra}.
|
||||
@end iftex
|
||||
@ifnottex
|
||||
@xref{Calendar Customizing,,, emacs}.
|
||||
|
@ -1264,6 +1264,12 @@ subexpression is numbered 1, the second 2, and so on. Only regular
|
||||
expressions can have subexpressions---after a simple string search, the
|
||||
only information available is about the entire match.
|
||||
|
||||
Every successful search sets the match data. Therefore, you should
|
||||
query the match data immediately after searching, before calling any
|
||||
other function that might perform another search. Alternatively, you
|
||||
may save and restore the match data (@pxref{Saving Match Data}) around
|
||||
the call to functions that could perform another search.
|
||||
|
||||
A search which fails may or may not alter the match data. In the
|
||||
past, a failing search did not do this, but we may change it in the
|
||||
future. So don't try to rely on the value of the match data after
|
||||
|
@ -662,10 +662,9 @@ string, or the end of a comment or a string, whichever comes first.
|
||||
|
||||
@cindex parse state
|
||||
The fifth argument @var{state} is a ten-element list of the same form
|
||||
as the value of this function, described below. (It is OK to omit the
|
||||
last two elements of this list.) The return value of one call may be
|
||||
used to initialize the state of the parse on another call to
|
||||
@code{parse-partial-sexp}.
|
||||
as the value of this function, described below. The return value of
|
||||
one call may be used to initialize the state of the parse on another
|
||||
call to @code{parse-partial-sexp}.
|
||||
|
||||
The result is a list of ten elements describing the final state of
|
||||
the parse:
|
||||
@ -721,11 +720,13 @@ this element is @code{nil}.
|
||||
Internal data for continuing the parsing. The meaning of this
|
||||
data is subject to change; it is used if you pass this list
|
||||
as the @var{state} argument to another call.
|
||||
|
||||
@end enumerate
|
||||
|
||||
Elements 0, 3, 4, 5, 7 and 9 are significant in the argument
|
||||
@var{state}.
|
||||
Elements 1, 2, and 6 are ignored in the argument @var{state}. Element
|
||||
8 is used only to set the corresponding element of the return value,
|
||||
in certain simple cases. Element 9 is used only to set element 1 of
|
||||
the return value, in trivial cases where parsing starts and stops
|
||||
within the same pair of parentheses.
|
||||
|
||||
@cindex indenting with parentheses
|
||||
This function is most often used to compute indentation for languages
|
||||
|
@ -1,3 +1,13 @@
|
||||
2006-05-23 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
|
||||
|
||||
* xlwmenu.c: Include xterm.h if emacs instead of declaring functions
|
||||
used.
|
||||
(string_width): Declare as static.
|
||||
(Start, pop_up_menu): Set is_hint to 0 before calling
|
||||
handle_motion_event.
|
||||
(pop_up_menu): Return value and parameters for x_catch_errors and
|
||||
x_uncatch_errors changed.
|
||||
|
||||
2005-09-27 Dan Nicolaescu <dann@ics.uci.edu>
|
||||
|
||||
* xlwmenu.c (find_next_selectable):
|
||||
|
@ -53,21 +53,8 @@ extern int gray_bitmap_width;
|
||||
extern int gray_bitmap_height;
|
||||
extern char *gray_bitmap_bits;
|
||||
|
||||
/* Defined in xterm.c. */
|
||||
extern int x_alloc_nearest_color_for_widget __P ((Widget, Colormap, XColor*));
|
||||
extern int x_alloc_lighter_color_for_widget __P ((Widget, Display*, Colormap,
|
||||
unsigned long *,
|
||||
double, int));
|
||||
extern int x_catch_errors __P ((Display*));
|
||||
extern void x_uncatch_errors P_ ((Display *, int));
|
||||
extern int x_had_errors_p __P ((Display*));
|
||||
extern void x_clear_errors __P ((Display*));
|
||||
extern unsigned long x_copy_dpy_color __P ((Display *, Colormap,
|
||||
unsigned long));
|
||||
#include "xterm.h"
|
||||
|
||||
/* Defined in xfaces.c. */
|
||||
extern void x_free_dpy_colors __P ((Display *, Screen *, Colormap,
|
||||
unsigned long *pixels, int npixels));
|
||||
#else /* not emacs */
|
||||
|
||||
#include <X11/bitmaps/gray>
|
||||
@ -352,7 +339,7 @@ make_old_stack_space (mw, n)
|
||||
}
|
||||
|
||||
/* Size code */
|
||||
int
|
||||
static int
|
||||
string_width (mw, s)
|
||||
XlwMenuWidget mw;
|
||||
char *s;
|
||||
@ -2098,6 +2085,7 @@ Start (w, ev, params, num_params)
|
||||
mw->menu.windows [0].y = ev->xmotion.y_root - ev->xmotion.y;
|
||||
|
||||
/* handles the down like a move, slots are compatible */
|
||||
ev->xmotion.is_hint = 0;
|
||||
handle_motion_event (mw, &ev->xmotion);
|
||||
}
|
||||
}
|
||||
@ -2435,7 +2423,6 @@ pop_up_menu (mw, event)
|
||||
int borderwidth = mw->menu.shadow_thickness;
|
||||
Screen* screen = XtScreen (mw);
|
||||
Display *display = XtDisplay (mw);
|
||||
int count;
|
||||
|
||||
next_release_must_exit = 0;
|
||||
|
||||
@ -2482,7 +2469,7 @@ pop_up_menu (mw, event)
|
||||
}
|
||||
|
||||
#ifdef emacs
|
||||
count = x_catch_errors (display);
|
||||
x_catch_errors (display);
|
||||
#endif
|
||||
if (XtGrabPointer ((Widget)mw, False,
|
||||
(PointerMotionMask
|
||||
@ -2510,9 +2497,10 @@ pop_up_menu (mw, event)
|
||||
pointer_grabbed = 0;
|
||||
XtUngrabPointer ((Widget)mw, event->time);
|
||||
}
|
||||
x_uncatch_errors (display, count);
|
||||
x_uncatch_errors ();
|
||||
#endif
|
||||
|
||||
((XMotionEvent*)event)->is_hint = 0;
|
||||
handle_motion_event (mw, (XMotionEvent*)event);
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,42 @@
|
||||
2006-05-22 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* frames.texi (Menu Bars, Tool Bars): Add index entries.
|
||||
|
||||
2006-05-20 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* dired.texi (Dired Navigation): dired-goto-file is now j.
|
||||
|
||||
2006-05-20 Luc Teirlinck <teirllm@auburn.edu>
|
||||
|
||||
* dired-x.texi: ifinfo -> ifnottex.
|
||||
|
||||
2006-05-20 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* mule.texi (Coding Systems): Mention the undecided-* coding systems
|
||||
and their aliases.
|
||||
|
||||
* msdog.texi (Windows Printing): Mention non-support of plain text
|
||||
printing with some el-cheapo printers, and suggest a workaround.
|
||||
|
||||
2006-05-20 Kevin Ryde <user42@zip.com.au>
|
||||
|
||||
* text.texi (TeX Print): tex-dvi-view-command has a default value,
|
||||
remove the bit saying you must set it.
|
||||
|
||||
2006-05-19 Luc Teirlinck <teirllm@auburn.edu>
|
||||
|
||||
* trouble.texi (Checklist):
|
||||
* text.texi (Text, Auto Fill, Text Mode):
|
||||
* search.texi (Nonincremental Search):
|
||||
* rmail.texi (Rmail Labels):
|
||||
* mule.texi (Input Methods, Multibyte Conversion):
|
||||
* misc.texi (Gnus, Where to Look, PostScript):
|
||||
* maintaining.texi (Create Tags Table):
|
||||
* indent.texi (Indentation Commands):
|
||||
* fixit.texi (Spelling):
|
||||
* emacs.texi (Copying):
|
||||
* custom.texi (Init File): ifinfo -> ifnottex.
|
||||
|
||||
2006-05-18 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* gnus.texi (Saving Articles): Clarify gnus-summary-save-article-mail.
|
||||
@ -34,8 +73,8 @@
|
||||
2006-05-12 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* calendar.texi (Calendar/Diary, Holidays, Displaying the Diary)
|
||||
(Displaying the Diary, Special Diary Entries, Importing Diary):
|
||||
* building.texi (Compilation Shell):
|
||||
(Displaying the Diary, Special Diary Entries, Importing Diary):
|
||||
* building.texi (Compilation Shell):
|
||||
* buffers.texi (Several Buffers) [iftex]: Replace @xref's to
|
||||
emacs-xtra with @inforef's.
|
||||
|
||||
|
@ -2111,10 +2111,10 @@ for more information about compiling Emacs Lisp programs.
|
||||
|
||||
If you are going to write actual Emacs Lisp programs that go beyond
|
||||
minor customization, you should read the @cite{Emacs Lisp Reference Manual}.
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
@xref{Top, Emacs Lisp, Emacs Lisp, elisp, the Emacs Lisp Reference
|
||||
Manual}.
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
|
||||
@menu
|
||||
* Init Syntax:: Syntax of constants in Emacs Lisp.
|
||||
|
@ -94,7 +94,7 @@ notice identical to this one except for the removal of this paragraph
|
||||
|
||||
@page
|
||||
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
|
||||
@node Top
|
||||
@comment node-name, next, previous, up
|
||||
@ -145,7 +145,7 @@ For @file{dired-x.el} revision 2
|
||||
|
||||
@end menu
|
||||
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
|
||||
@node Introduction, Installation, Top, Top
|
||||
@comment node-name, next, previous, up
|
||||
@ -162,12 +162,12 @@ the code using @code{gmhist} history functions was replaced with code using
|
||||
the mini-buffer history now built into GNU Emacs. Finally, a few other
|
||||
features have been added and a few more functions have been bound to keys.
|
||||
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
@menu
|
||||
* Features::
|
||||
* Technical Details::
|
||||
@end menu
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
|
||||
@node Features, Technical Details, , Introduction
|
||||
@comment node-name, next, previous, up
|
||||
@ -279,12 +279,12 @@ initialization file @file{default.el} in the @file{site-lisp} directory, put
|
||||
This will load @file{dired-x.el} when Dired is first invoked (for example,
|
||||
when you first type @kbd{C-x d}).
|
||||
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
@menu
|
||||
* Optional Installation Dired Jump::
|
||||
* Optional Installation File At Point::
|
||||
@end menu
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
|
||||
@node Optional Installation Dired Jump, Optional Installation File At Point, , Installation
|
||||
@comment node-name, next, previous, up
|
||||
@ -409,13 +409,13 @@ In order to make Dired Omit work you first need to load @file{dired-x.el}
|
||||
inside @code{dired-load-hook} (@pxref{Installation}) and then evaluate
|
||||
@code{(dired-omit-mode 1)} in some way (@pxref{Omitting Variables}).
|
||||
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
@menu
|
||||
* Omitting Variables::
|
||||
* Omitting Examples::
|
||||
* Omitting Technical::
|
||||
@end menu
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
|
||||
@node Omitting Variables, Omitting Examples, , Omitting Files in Dired
|
||||
@comment node-name, next, previous, up
|
||||
@ -839,13 +839,13 @@ Flag all files with a certain extension for deletion. A @samp{.} is
|
||||
@emph{not} automatically prepended to the string entered.
|
||||
@end table
|
||||
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
@menu
|
||||
* Advanced Cleaning Functions::
|
||||
* Advanced Cleaning Variables::
|
||||
* Special Marking Function::
|
||||
@end menu
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
|
||||
@node Advanced Cleaning Functions, Advanced Cleaning Variables, , Advanced Mark Commands
|
||||
@comment node-name, next, previous, up
|
||||
|
@ -96,8 +96,8 @@ so common in Dired that it deserves to be easy to type.) @key{DEL}
|
||||
(move up and unflag) is often useful simply for moving up.
|
||||
|
||||
@findex dired-goto-file
|
||||
@kindex M-g @r{(Dired)}
|
||||
@kbd{M-g} (@code{dired-goto-file}) moves point to the line that
|
||||
@kindex j @r{(Dired)}
|
||||
@kbd{j} (@code{dired-goto-file}) moves point to the line that
|
||||
describes a specified file or directory.
|
||||
|
||||
Some additional navigation commands are available when the Dired
|
||||
|
@ -1227,9 +1227,9 @@ modification follow.
|
||||
@iftex
|
||||
@unnumberedsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
@end iftex
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
@center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
|
||||
@enumerate 0
|
||||
@item
|
||||
@ -1452,9 +1452,9 @@ of promoting the sharing and reuse of software generally.
|
||||
@iftex
|
||||
@heading NO WARRANTY
|
||||
@end iftex
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
@center NO WARRANTY
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
|
||||
@item
|
||||
BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
@ -1482,9 +1482,9 @@ POSSIBILITY OF SUCH DAMAGES.
|
||||
@iftex
|
||||
@heading END OF TERMS AND CONDITIONS
|
||||
@end iftex
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
@center END OF TERMS AND CONDITIONS
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
|
||||
@page
|
||||
@unnumberedsec How to Apply These Terms to Your New Programs
|
||||
|
@ -261,17 +261,17 @@ copies the file into the displayed directory. For details, see
|
||||
you had visited an existing empty file. If you make any changes and
|
||||
save them, the file is created.
|
||||
|
||||
Emacs recognizes from the contents of a file which convention it uses
|
||||
to separate lines---newline (used on GNU/Linux and on Unix),
|
||||
carriage-return linefeed (used on Microsoft systems), or just
|
||||
carriage-return (used on the Macintosh)---and automatically converts the
|
||||
contents to the normal Emacs convention, which is that the newline
|
||||
character separates lines. This is a part of the general feature of
|
||||
coding system conversion (@pxref{Coding Systems}), and makes it possible
|
||||
to edit files imported from different operating systems with
|
||||
equal convenience. If you change the text and save the file, Emacs
|
||||
performs the inverse conversion, changing newlines back into
|
||||
carriage-return linefeed or just carriage-return if appropriate.
|
||||
Emacs recognizes from the contents of a file which end-of-line
|
||||
convention it uses to separate lines---newline (used on GNU/Linux and
|
||||
on Unix), carriage-return linefeed (used on Microsoft systems), or
|
||||
just carriage-return (used on the Macintosh)---and automatically
|
||||
converts the contents to the normal Emacs convention, which is that
|
||||
the newline character separates lines. This is a part of the general
|
||||
feature of coding system conversion (@pxref{Coding Systems}), and
|
||||
makes it possible to edit files imported from different operating
|
||||
systems with equal convenience. If you change the text and save the
|
||||
file, Emacs performs the inverse conversion, changing newlines back
|
||||
into carriage-return linefeed or just carriage-return if appropriate.
|
||||
|
||||
@vindex find-file-run-dired
|
||||
If the file you specify is actually a directory, @kbd{C-x C-f} invokes
|
||||
|
@ -267,9 +267,9 @@ case-convert it and go on typing. @xref{Case}.@refill
|
||||
This section describes the commands to check the spelling of a single
|
||||
word or of a portion of a buffer. These commands work with the spelling
|
||||
checker programs Aspell and Ispell, which are not part of Emacs.
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
@xref{Top, Aspell,, aspell, The Aspell Manual}.
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
|
||||
@table @kbd
|
||||
@item M-x flyspell-mode
|
||||
|
@ -865,6 +865,8 @@ protocol, are currently supported.
|
||||
@section Menu Bars
|
||||
@cindex Menu Bar mode
|
||||
@cindex mode, Menu Bar
|
||||
@findex menu-bar-mode
|
||||
@vindex menu-bar-mode
|
||||
|
||||
You can turn display of menu bars on or off with @kbd{M-x
|
||||
menu-bar-mode} or by customizing the variable @code{menu-bar-mode}.
|
||||
@ -904,6 +906,8 @@ global tool bar.
|
||||
XPM icons if Emacs was built with XPM support. Otherwise, the tool
|
||||
bar uses monochrome icons (PBM or XBM format).
|
||||
|
||||
@findex tool-bar-mode
|
||||
@vindex tool-bar-mode
|
||||
You can turn display of tool bars on or off with @kbd{M-x
|
||||
tool-bar-mode} or by customizing the option @code{tool-bar-mode}.
|
||||
|
||||
|
@ -154,9 +154,9 @@ point, until it is underneath the next indentation point in the previous line.
|
||||
An indentation point is the end of a sequence of whitespace or the end of
|
||||
the line. If point is farther right than any indentation point in the
|
||||
previous line, @code{indent-relative} runs @code{tab-to-tab-stop}
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
(@pxref{Tab Stops}),
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
@iftex
|
||||
(see next section),
|
||||
@end iftex
|
||||
|
@ -355,9 +355,9 @@ the syntax of several languages, as described in
|
||||
@iftex
|
||||
the previous section.
|
||||
@end iftex
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
@ref{Tag Syntax}.
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
Here is how to run @code{etags}:
|
||||
|
||||
@example
|
||||
|
@ -30,9 +30,9 @@ Usenet news. It can also be used to read and respond to messages from a
|
||||
number of other sources---mail, remote directories, digests, and so on.
|
||||
|
||||
Here we introduce Gnus and describe several basic features.
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
For full details, see @ref{Top, Gnus,, gnus, The Gnus Manual}.
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
@iftex
|
||||
For full details on Gnus, type @kbd{M-x info} and then select the Gnus
|
||||
manual.
|
||||
@ -238,10 +238,10 @@ for @var{regexp}.
|
||||
|
||||
@c Too many references to the name of the manual if done with xref in TeX!
|
||||
Gnus is powerful and customizable. Here are references to a few
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
additional topics:
|
||||
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
@iftex
|
||||
additional topics in @cite{The Gnus Manual}:
|
||||
|
||||
@ -274,7 +274,7 @@ Send an article to a newsgroup.@*
|
||||
See section ``Composing Messages.''
|
||||
@end itemize
|
||||
@end iftex
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
@itemize @bullet
|
||||
@item
|
||||
Follow discussions on specific topics.@*
|
||||
@ -304,7 +304,7 @@ name, subject, or string in the body of the articles.@*
|
||||
Send an article to a newsgroup.@*
|
||||
@xref{Composing Messages, , , gnus, The Gnus Manual}.
|
||||
@end itemize
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
@end ignore
|
||||
|
||||
@node Shell, Emacs Server, Gnus, Top
|
||||
@ -1503,9 +1503,9 @@ rendition of the current buffer as a cursive handwritten document. It
|
||||
can be customized in group @code{handwrite}. This function only
|
||||
supports ISO 8859-1 characters.
|
||||
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
The following section describes variables for customizing these commands.
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
|
||||
@node PostScript Variables, Printing Package, PostScript, Printing
|
||||
@section Variables for PostScript Hardcopy
|
||||
|
@ -328,6 +328,12 @@ the default directory of the current buffer, so if the file name in
|
||||
files, each one in the directory of the buffer from which the printing
|
||||
was done.
|
||||
|
||||
If the value of @code{printer-name} is correct, but printing does
|
||||
not produce the hardcopy on your printer, it is possible that your
|
||||
printer does not support printing plain text (some cheap printers omit
|
||||
this functionality). In that case, as a workaround, try the
|
||||
PostScript print commands, described below, to the same printer
|
||||
|
||||
@findex print-buffer @r{(MS-DOS)}
|
||||
@findex print-region @r{(MS-DOS)}
|
||||
@vindex lpr-headers-switches @r{(MS-DOS)}
|
||||
|
@ -429,9 +429,9 @@ immediately delete it. For example, you could type @kbd{e e @key{DEL}
|
||||
Another method, more general but not quite as easy to type, is to use
|
||||
@kbd{C-\ C-\} between two characters to stop them from combining. This
|
||||
is the command @kbd{C-\} (@code{toggle-input-method}) used twice.
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
@xref{Select Input Method}.
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
|
||||
@cindex incremental search, input method interference
|
||||
@kbd{C-\ C-\} is especially useful inside an incremental search,
|
||||
@ -563,9 +563,9 @@ through your choice of language environment
|
||||
@iftex
|
||||
(see above).
|
||||
@end iftex
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
(@pxref{Language Environments}).
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
If you do not specify a choice, the default is Latin-1.
|
||||
|
||||
If you insert a character in the range 0200 through 0237, which
|
||||
@ -679,6 +679,13 @@ predictable. For example, the coding system @code{iso-latin-1} has
|
||||
variants @code{iso-latin-1-unix}, @code{iso-latin-1-dos} and
|
||||
@code{iso-latin-1-mac}.
|
||||
|
||||
@cindex @code{undecided}, coding system
|
||||
The coding systems @code{unix}, @code{dos}, and @code{mac} are
|
||||
aliases for @code{undecided-unix}, @code{undecided-dos}, and
|
||||
@code{undecided-mac}, respectively. These coding systems specify only
|
||||
the end-of-line conversion, and leave the character code conversion to
|
||||
be deduced from the text itself.
|
||||
|
||||
The coding system @code{raw-text} is good for a file which is mainly
|
||||
@acronym{ASCII} text, but may contain byte values above 127 which are
|
||||
not meant to encode non-@acronym{ASCII} characters. With
|
||||
|
@ -550,9 +550,9 @@ labels. Any given label is either present or absent on a particular
|
||||
message. A few label names have standard meanings and are given to
|
||||
messages automatically by Rmail when appropriate; these special labels
|
||||
are called @dfn{attributes}.
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
(@xref{Rmail Attributes}.)
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
All other labels are assigned only by users.
|
||||
|
||||
@table @kbd
|
||||
|
@ -372,9 +372,9 @@ specify is empty. (Such an empty argument would otherwise be
|
||||
useless.) But it does not call @code{search-forward} right away. First
|
||||
it checks the next input character to see if is @kbd{C-w},
|
||||
which specifies a word search.
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
@xref{Word Search}.
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
@kbd{C-r @key{RET}} does likewise, for a reverse incremental search.
|
||||
|
||||
@findex search-forward
|
||||
|
@ -39,9 +39,9 @@ input to @TeX{}, you would use @TeX{}
|
||||
@iftex
|
||||
mode (@pxref{TeX Mode}).
|
||||
@end iftex
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
mode.
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
For input to groff or nroff, use Nroff mode.
|
||||
|
||||
Instead of using a text formatter, you can edit formatted text in
|
||||
@ -473,9 +473,9 @@ automatically from the second or first line of a paragraph.
|
||||
cannot merge lines. So editing in the middle of a paragraph can result in
|
||||
a paragraph that is not correctly filled. The easiest way to make the
|
||||
paragraph properly filled again is usually with the explicit fill commands.
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
@xref{Fill Commands}.
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
|
||||
Many users like Auto Fill mode and want to use it in all text files.
|
||||
The section on init files says how to arrange this permanently for yourself.
|
||||
@ -934,7 +934,7 @@ mode, Outline mode, and Mail mode. Hook functions on
|
||||
@code{text-mode-hook} can look at the value of @code{major-mode} to see
|
||||
which of these modes is actually being entered. @xref{Hooks}.
|
||||
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
Emacs provides two other modes for editing text that is to be passed
|
||||
through a text formatter to produce fancy formatted printed output.
|
||||
@xref{Nroff Mode}, for editing input to the formatter nroff.
|
||||
@ -945,7 +945,7 @@ text at various levels of detail. You can view either the outline
|
||||
headings alone or both headings and text; you can also hide some of the
|
||||
headings at lower levels from view to make the high level structure more
|
||||
visible. @xref{Outline Mode}.
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
|
||||
@node Outline Mode
|
||||
@section Outline Mode
|
||||
@ -1596,9 +1596,7 @@ directory, such as @code{"/tmp"}.
|
||||
you can do so by setting the values of the variables @code{tex-run-command},
|
||||
@code{latex-run-command}, @code{slitex-run-command},
|
||||
@code{tex-dvi-print-command}, @code{tex-dvi-view-command}, and
|
||||
@code{tex-show-queue-command}. You @emph{must} set the value of
|
||||
@code{tex-dvi-view-command} for your particular terminal; this variable
|
||||
has no default value. The other variables have default values that may
|
||||
@code{tex-show-queue-command}. The default values may
|
||||
(or may not) be appropriate for your system.
|
||||
|
||||
Normally, the file name given to these commands comes at the end of
|
||||
|
@ -890,10 +890,10 @@ understand it at all. And if we can't understand what bug you are
|
||||
trying to fix, or why your patch should be an improvement, we mustn't
|
||||
install it.
|
||||
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
@xref{Sending Patches}, for guidelines on how to make it easy for us to
|
||||
understand and install your patches.
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
|
||||
@item
|
||||
A guess about what the bug is or what it depends on.
|
||||
|
@ -1,3 +1,40 @@
|
||||
2006-05-23 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
|
||||
|
||||
* macterm.c (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
|
||||
(fn_keycode_to_keycode_table) [MAC_OSX]: New variable.
|
||||
(mac_set_unicode_keystroke_event) [TARGET_API_MAC_CARBON]: New function.
|
||||
(XTread_socket) [TARGET_API_MAC_CARBON]: Use it.
|
||||
(XTread_socket) [MAC_OSX]: Try 'uchr' Unicode keyboard-layout
|
||||
resource to backtranslate key with modifiers.
|
||||
(XTread_socket): Don't set read_socket_inev around AEProcessAppleEvent.
|
||||
|
||||
2006-05-23 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
|
||||
|
||||
* xterm.c: Remove declarations already in xterm.h
|
||||
|
||||
* xterm.h: Add extern declarations for x_clear_errors,
|
||||
x_fully_uncatch_errors, x_catching_errors and
|
||||
x_alloc_lighter_color_for_widget. Remove duplicated declarations.
|
||||
|
||||
2006-05-21 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* buffer.c (syms_of_buffer, Fmake_overlay): Doc fixes.
|
||||
|
||||
2006-05-20 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
* xfaces.c (best_matching_font): Fix crash in 2006-05-17 change.
|
||||
|
||||
2006-05-20 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
|
||||
|
||||
* macterm.c (convert_fn_keycode): Fix last change.
|
||||
|
||||
2006-05-19 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* w32.c (init_environment): Perform the processing of environment
|
||||
variables on a copy of default variables and their values, not on
|
||||
the original. Simplify code that calls ExpandEnvironmentStrings
|
||||
and make buf1[] and buf2[] more visible for easier debugging.
|
||||
|
||||
2006-05-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
|
||||
|
||||
* frame.c (x_set_border_width): Remove #ifndef MAC_OS.
|
||||
@ -49,6 +86,13 @@
|
||||
* xdisp.c (display_tool_bar_line): Don't adjust tool-bar height by more than
|
||||
height of one frame default line.
|
||||
|
||||
2006-05-17 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* xfaces.c (better_font_p): Any font beats no font.
|
||||
(best_matching_font): Simplify based on above change.
|
||||
|
||||
* buffer.c (Fprevious_overlay_change, Fnext_overlay_change): Doc fixes.
|
||||
|
||||
2006-05-16 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
* xterm.c (handle_one_xevent): Check that f is not NULL before
|
||||
@ -113,7 +157,7 @@
|
||||
[MAC_OS] (gif_load): Emulate Graphic Control Extension block.
|
||||
|
||||
* macfns.c (x_to_mac_color): Fix shift amount change.
|
||||
[USE_MAC_FONT_PANEL] (mac_set_font): Use x_get_focus_frame.
|
||||
(mac_set_font) [USE_MAC_FONT_PANEL]: Use x_get_focus_frame.
|
||||
[USE_MAC_FONT_PANEL] (Fmac_set_font_panel_visibility): Doc fix.
|
||||
|
||||
* macselect.c (Vmac_service_selection) [MAC_OSX]: Rename from
|
||||
|
@ -3584,10 +3584,10 @@ If omitted, BUFFER defaults to the current buffer.
|
||||
BEG and END may be integers or markers.
|
||||
The fourth arg FRONT-ADVANCE, if non-nil, makes the marker
|
||||
for the front of the overlay advance when text is inserted there
|
||||
(which means the text *is not* included in the overlay).
|
||||
\(which means the text *is not* included in the overlay).
|
||||
The fifth arg REAR-ADVANCE, if non-nil, makes the marker
|
||||
for the rear of the overlay advance when text is inserted there
|
||||
(which means the text *is* included in the overlay). */)
|
||||
\(which means the text *is* included in the overlay). */)
|
||||
(beg, end, buffer, front_advance, rear_advance)
|
||||
Lisp_Object beg, end, buffer;
|
||||
Lisp_Object front_advance, rear_advance;
|
||||
@ -5769,7 +5769,7 @@ the actual bitmap shown in the left or right fringe for the logical
|
||||
indicator. LEFT and RIGHT are the bitmaps shown in the left and/or
|
||||
right fringe for the specific indicator. The LEFT1 or RIGHT1 bitmaps
|
||||
are used only for the `bottom' and `one-line' indicators when the last
|
||||
(only) line in has no final newline. BITMAPS may also be a single
|
||||
\(only) line in has no final newline. BITMAPS may also be a single
|
||||
symbol which is used in both left and right fringes. */);
|
||||
|
||||
DEFVAR_PER_BUFFER ("fringe-cursor-alist",
|
||||
@ -6016,7 +6016,7 @@ this variable has no effect; the cursor appears as a hollow box. */);
|
||||
doc: /* Additional space to put between lines when displaying a buffer.
|
||||
The space is measured in pixels, and put below lines on window systems.
|
||||
If value is a floating point number, it specifies the spacing relative
|
||||
to the default frame line height. */);
|
||||
to the default frame line height. nil means add no extra space. */);
|
||||
|
||||
DEFVAR_PER_BUFFER ("cursor-in-non-selected-windows",
|
||||
¤t_buffer->cursor_in_non_selected_windows, Qnil,
|
||||
|
@ -462,7 +462,10 @@ struct coding_system
|
||||
|| (coding)->common_flags & CODING_REQUIRE_DECODING_MASK)
|
||||
|
||||
/* Return 1 if the coding system CODING requires code conversion on
|
||||
encoding. */
|
||||
encoding.
|
||||
The non-multibyte part of the condition is to support encoding of
|
||||
unibyte strings/buffers generated by string-as-unibyte or
|
||||
(set-buffer-multibyte nil) from multibyte strings/buffers. */
|
||||
#define CODING_REQUIRE_ENCODING(coding) \
|
||||
((coding)->src_multibyte \
|
||||
|| (coding)->common_flags & CODING_REQUIRE_ENCODING_MASK)
|
||||
|
@ -2016,6 +2016,10 @@ set_point_both (buffer, charpos, bytepos)
|
||||
register INTERVAL to, from, toprev, fromprev;
|
||||
int buffer_point;
|
||||
int old_position = BUF_PT (buffer);
|
||||
/* This ensures that we move forward past intangible text when the
|
||||
initial position is the same as the destination, in the rare
|
||||
instances where this is important, e.g. in line-move-finish
|
||||
(simple.el). */
|
||||
int backwards = (charpos < old_position ? 1 : 0);
|
||||
int have_overlays;
|
||||
int original_position;
|
||||
|
384
src/macterm.c
384
src/macterm.c
@ -9629,7 +9629,12 @@ keycode_to_xkeysym (int keyCode, int *xKeySym)
|
||||
return *xKeySym != 0;
|
||||
}
|
||||
|
||||
static unsigned char fn_keycode_to_xkeysym_table[] = {
|
||||
#ifdef MAC_OSX
|
||||
/* Table for translating Mac keycode with the laptop `fn' key to that
|
||||
without it. Destination symbols in comments are keys on US
|
||||
keyboard, and they may not be the same on other types of
|
||||
keyboards. */
|
||||
static unsigned char fn_keycode_to_keycode_table[] = {
|
||||
/*0x00*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/*0x10*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/*0x20*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
@ -9639,113 +9644,27 @@ static unsigned char fn_keycode_to_xkeysym_table[] = {
|
||||
/*0x38*/ 0, 0, 0, 0,
|
||||
/*0x3C*/ 0, 0, 0, 0,
|
||||
|
||||
/*0x40*/ 0, 0x2e /*kp-. = .*/, 0, 0x50 /*kp-* = 'p'*/,
|
||||
/*0x44*/ 0, '/' /*kp-+*/, 0, 0,
|
||||
/*0x48*/ 0, 0, 0, 0x30 /*kp-/ = '0'*/,
|
||||
/*0x4C*/ 0, 0, 0x3b /*kp-- = ';'*/, 0,
|
||||
/*0x40*/ 0, 0x2f /*kp-. -> '.'*/, 0, 0x23 /*kp-* -> 'p'*/,
|
||||
/*0x44*/ 0, 0x2c /*kp-+ -> '/'*/, 0, 0x16 /*clear -> '6'*/,
|
||||
/*0x48*/ 0, 0, 0, 0x1d /*kp-/ -> '0'*/,
|
||||
/*0x4C*/ 0x24 /*kp-enter -> return*/, 0, 0x29 /*kp-- -> ';'*/, 0,
|
||||
|
||||
/*0x50*/ 0, 0x2d /*kp-= = '-'*/, 0x6d /*kp-0 = 'm'*/, 0x6a /*kp-1 = 'j'*/,
|
||||
/*0x54*/ 0x6b /*kp-2 = 'k'*/, 0x6c /*kp-3 = 'l'*/, 'u' /*kp-4*/, 'i' /*kp-5*/,
|
||||
/*0x58*/ 'o' /*kp-6*/, '7' /*kp-7*/, 0, '8' /*kp-8*/,
|
||||
/*0x5C*/ '9' /*kp-9*/, 0, 0, 0,
|
||||
/*0x50*/ 0, 0x1b /*kp-= -> '-'*/, 0x2e /*kp-0 -> 'm'*/, 0x26 /*kp-1 -> 'j'*/,
|
||||
/*0x54*/ 0x28 /*kp-2 -> 'k'*/, 0x25 /*kp-3 -> 'l'*/, 0x20 /*kp-4 -> 'u'*/, 0x22 /*kp-5 ->'i'*/,
|
||||
/*0x58*/ 0x1f /*kp-6 -> 'o'*/, 0x1a /*kp-7 -> '7'*/, 0, 0x1c /*kp-8 -> '8'*/,
|
||||
/*0x5C*/ 0x19 /*kp-9 -> '9'*/, 0, 0, 0,
|
||||
|
||||
/*0x60*/ 0, 0, 0, 0,
|
||||
/*0x64*/ 0, 0, 0, 0,
|
||||
/*0x68*/ 0, 0, 0, 0,
|
||||
/*0x6C*/ 0, 0, 0, 0,
|
||||
|
||||
/*0x70*/ 0, 0, 0, 0,
|
||||
/*0x74*/ 0, 0, 0, 0,
|
||||
/*0x78*/ 0, 0, 0, 0,
|
||||
/*0x70*/ 0, 0, 0, 0x7b /*home -> left*/,
|
||||
/*0x74*/ 0x7e /*pgup -> up*/, 0x33 /*delete -> backspace*/, 0, 0x7c /*end -> right*/,
|
||||
/*0x78*/ 0, 0x7d /*pgdown -> down*/, 0, 0,
|
||||
/*0x7C*/ 0, 0, 0, 0
|
||||
};
|
||||
static int
|
||||
convert_fn_keycode (EventRef eventRef, int keyCode, int *newCode)
|
||||
{
|
||||
#ifdef MAC_OSX
|
||||
/* Use the special map to translate keys when function modifier is
|
||||
to be caught. KeyTranslate can't be used in that case.
|
||||
We can't detect the function key using the input_event.modifiers,
|
||||
because this uses the high word of an UInt32. Therefore,
|
||||
we'll just read it out of the original eventRef.
|
||||
*/
|
||||
|
||||
|
||||
/* TODO / known issues
|
||||
|
||||
- Fn-Shift-j is regonized as Fn-j and not Fn-J.
|
||||
The above table always translates to lower characters. We need to use
|
||||
the KCHR keyboard resource (KeyTranslate() ) to map k->K and 8->*.
|
||||
|
||||
- The table is meant for English language keyboards, and it will work
|
||||
for many others with the exception of key combinations like Fn-ö on
|
||||
a German keyboard, which is currently mapped to Fn-;.
|
||||
How to solve this without keeping separate tables for all keyboards
|
||||
around? KeyTranslate isn't of much help here, as it only takes a 16-bit
|
||||
value for keycode with the modifiers in he high byte, i.e. no room for the
|
||||
Fn modifier. That's why we need the table.
|
||||
|
||||
*/
|
||||
OSStatus err;
|
||||
UInt32 mods = 0;
|
||||
if (!NILP(Vmac_function_modifier))
|
||||
{
|
||||
err = GetEventParameter (eventRef, kEventParamKeyModifiers, typeUInt32,
|
||||
NULL, sizeof (UInt32), NULL, &mods);
|
||||
if (err != noErr && mods & kEventKeyModifierFnMask)
|
||||
{ *newCode = fn_keycode_to_xkeysym_table [keyCode & 0x7f];
|
||||
|
||||
return (*newCode != 0);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
|
||||
static int
|
||||
backtranslate_modified_keycode(int mods, int keycode, int def)
|
||||
{
|
||||
EventModifiers mapped_modifiers =
|
||||
(NILP (Vmac_control_modifier) ? 0 : controlKey)
|
||||
| (NILP (Vmac_option_modifier) ? 0 : optionKey)
|
||||
| (NILP (Vmac_command_modifier) ? 0 : cmdKey);
|
||||
|
||||
if (mods & mapped_modifiers)
|
||||
{
|
||||
/* This code comes from Keyboard Resource,
|
||||
Appendix C of IM - Text. This is necessary
|
||||
since shift is ignored in KCHR table
|
||||
translation when option or command is pressed.
|
||||
It also does not translate correctly
|
||||
control-shift chars like C-% so mask off shift
|
||||
here also.
|
||||
|
||||
Not done for combinations with the option key (alt)
|
||||
unless it is to be caught by Emacs: this is
|
||||
to preserve key combinations translated by the OS
|
||||
such as Alt-3.
|
||||
*/
|
||||
/* Mask off modifier keys that are mapped to some Emacs
|
||||
modifiers. */
|
||||
int new_modifiers = mods & ~mapped_modifiers;
|
||||
/* set high byte of keycode to modifier high byte*/
|
||||
int new_keycode = keycode | new_modifiers;
|
||||
Ptr kchr_ptr = (Ptr) GetScriptManagerVariable (smKCHRCache);
|
||||
unsigned long some_state = 0;
|
||||
return (int) KeyTranslate (kchr_ptr, new_keycode,
|
||||
&some_state) & 0xff;
|
||||
/* TO DO: Recognize two separate resulting characters, "for
|
||||
example, when the user presses Option-E followed by N, you
|
||||
can map this through the KeyTranslate function using the
|
||||
U.S. 'KCHR' resource to produce ´n, which KeyTranslate
|
||||
returns as two characters in the bytes labeled Character code
|
||||
1 and Character code 2." (from Carbon API doc) */
|
||||
|
||||
}
|
||||
else
|
||||
return def;
|
||||
}
|
||||
|
||||
#endif /* MAC_OSX */
|
||||
|
||||
#if !USE_CARBON_EVENTS
|
||||
static RgnHandle mouse_region = NULL;
|
||||
@ -9819,6 +9738,44 @@ mac_post_mouse_moved_event ()
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
static void
|
||||
mac_set_unicode_keystroke_event (code, buf)
|
||||
UniChar code;
|
||||
struct input_event *buf;
|
||||
{
|
||||
int charset_id, c1, c2;
|
||||
|
||||
if (code < 0x80)
|
||||
{
|
||||
buf->kind = ASCII_KEYSTROKE_EVENT;
|
||||
buf->code = code;
|
||||
}
|
||||
else if (code < 0x100)
|
||||
{
|
||||
if (code < 0xA0)
|
||||
charset_id = CHARSET_8_BIT_CONTROL;
|
||||
else
|
||||
charset_id = charset_latin_iso8859_1;
|
||||
buf->kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT;
|
||||
buf->code = MAKE_CHAR (charset_id, code, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (code < 0x2500)
|
||||
charset_id = charset_mule_unicode_0100_24ff,
|
||||
code -= 0x100;
|
||||
else if (code < 0x33FF)
|
||||
charset_id = charset_mule_unicode_2500_33ff,
|
||||
code -= 0x2500;
|
||||
else if (code >= 0xE000)
|
||||
charset_id = charset_mule_unicode_e000_ffff,
|
||||
code -= 0xE000;
|
||||
c1 = (code / 96) + 32, c2 = (code % 96) + 32;
|
||||
buf->kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT;
|
||||
buf->code = MAKE_CHAR (charset_id, c1, c2);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Emacs calls this whenever it wants to read an input event from the
|
||||
@ -10338,55 +10295,39 @@ XTread_socket (sd, expected, hold_quit)
|
||||
{
|
||||
int keycode = (er.message & keyCodeMask) >> 8;
|
||||
int xkeysym;
|
||||
static SInt16 last_key_script = -1;
|
||||
SInt16 current_key_script;
|
||||
UInt32 modifiers = er.modifiers, mapped_modifiers;
|
||||
|
||||
mapped_modifiers =
|
||||
(NILP (Vmac_control_modifier) ? 0 : controlKey)
|
||||
| (NILP (Vmac_option_modifier) ? 0 : optionKey)
|
||||
| (NILP (Vmac_command_modifier) ? 0 : cmdKey);
|
||||
|
||||
#if USE_CARBON_EVENTS && defined (MAC_OSX)
|
||||
mapped_modifiers |=
|
||||
(NILP (Vmac_function_modifier) ? 0 : kEventKeyModifierFnMask);
|
||||
|
||||
GetEventParameter (eventRef, kEventParamKeyModifiers,
|
||||
typeUInt32, NULL,
|
||||
sizeof (UInt32), NULL, &modifiers);
|
||||
|
||||
/* When using Carbon Events, we need to pass raw keyboard
|
||||
events to the TSM ourselves. If TSM handles it, it
|
||||
will pass back noErr, otherwise it will pass back
|
||||
"eventNotHandledErr" and we can process it
|
||||
normally. */
|
||||
if ((mac_pass_command_to_system
|
||||
|| !(er.modifiers & cmdKey))
|
||||
&& (mac_pass_control_to_system
|
||||
|| !(er.modifiers & controlKey))
|
||||
&& (NILP (Vmac_option_modifier)
|
||||
|| !(er.modifiers & optionKey)))
|
||||
if (!(modifiers
|
||||
& mapped_modifiers
|
||||
& ~(mac_pass_command_to_system ? cmdKey : 0)
|
||||
& ~(mac_pass_control_to_system ? controlKey : 0)))
|
||||
if (SendEventToEventTarget (eventRef, toolbox_dispatcher)
|
||||
!= eventNotHandledErr)
|
||||
break;
|
||||
break;
|
||||
#endif
|
||||
if (er.what == keyUp)
|
||||
break;
|
||||
|
||||
#if 0
|
||||
if (dpyinfo->x_focus_frame == NULL)
|
||||
{
|
||||
/* Beep if keyboard input occurs when all the frames
|
||||
are invisible. */
|
||||
SysBeep (1);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
{
|
||||
static SInt16 last_key_script = -1;
|
||||
SInt16 current_key_script = GetScriptManagerVariable (smKeyScript);
|
||||
|
||||
if (last_key_script != current_key_script)
|
||||
{
|
||||
struct input_event event;
|
||||
|
||||
EVENT_INIT (event);
|
||||
event.kind = LANGUAGE_CHANGE_EVENT;
|
||||
event.arg = Qnil;
|
||||
event.code = current_key_script;
|
||||
event.timestamp = timestamp;
|
||||
kbd_buffer_store_event (&event);
|
||||
count++;
|
||||
}
|
||||
last_key_script = current_key_script;
|
||||
}
|
||||
|
||||
ObscureCursor ();
|
||||
|
||||
f = mac_focus_frame (dpyinfo);
|
||||
@ -10398,51 +10339,156 @@ XTread_socket (sd, expected, hold_quit)
|
||||
dpyinfo->mouse_face_hidden = 1;
|
||||
}
|
||||
|
||||
/* translate the keycode back to determine the original key */
|
||||
/* Convert key code if function key is pressed.
|
||||
Otherwise, if non-ASCII-event, take care of that
|
||||
without re-translating the key code. */
|
||||
#if USE_CARBON_EVENTS
|
||||
if (convert_fn_keycode (eventRef, keycode, &xkeysym))
|
||||
current_key_script = GetScriptManagerVariable (smKeyScript);
|
||||
if (last_key_script != current_key_script)
|
||||
{
|
||||
inev.code = xkeysym;
|
||||
/* this doesn't work - tried to add shift modifiers */
|
||||
inev.code =
|
||||
backtranslate_modified_keycode(er.modifiers & (~0x2200),
|
||||
xkeysym | 0x80, xkeysym);
|
||||
inev.kind = ASCII_KEYSTROKE_EVENT;
|
||||
struct input_event event;
|
||||
|
||||
EVENT_INIT (event);
|
||||
event.kind = LANGUAGE_CHANGE_EVENT;
|
||||
event.arg = Qnil;
|
||||
event.code = current_key_script;
|
||||
event.timestamp = timestamp;
|
||||
kbd_buffer_store_event (&event);
|
||||
count++;
|
||||
last_key_script = current_key_script;
|
||||
}
|
||||
else
|
||||
|
||||
#ifdef MAC_OSX
|
||||
if (modifiers & kEventKeyModifierFnMask
|
||||
&& keycode <= 0x7f
|
||||
&& fn_keycode_to_keycode_table[keycode])
|
||||
keycode = fn_keycode_to_keycode_table[keycode];
|
||||
#endif
|
||||
if (keycode_to_xkeysym (keycode, &xkeysym))
|
||||
{
|
||||
inev.code = 0xff00 | xkeysym;
|
||||
inev.kind = NON_ASCII_KEYSTROKE_EVENT;
|
||||
}
|
||||
else
|
||||
{
|
||||
inev.code =
|
||||
backtranslate_modified_keycode(er.modifiers, keycode,
|
||||
er.message & charCodeMask);
|
||||
inev.kind = ASCII_KEYSTROKE_EVENT;
|
||||
}
|
||||
}
|
||||
if (keycode_to_xkeysym (keycode, &xkeysym))
|
||||
{
|
||||
inev.kind = NON_ASCII_KEYSTROKE_EVENT;
|
||||
inev.code = 0xff00 | xkeysym;
|
||||
}
|
||||
else if (modifiers & mapped_modifiers)
|
||||
{
|
||||
/* translate the keycode back to determine the
|
||||
original key */
|
||||
#ifdef MAC_OSX
|
||||
static SInt16 last_key_layout_id = 0;
|
||||
static Handle uchr_handle = (Handle)-1;
|
||||
SInt16 current_key_layout_id =
|
||||
GetScriptVariable (current_key_script, smScriptKeys);
|
||||
|
||||
if (uchr_handle == (Handle)-1
|
||||
|| last_key_layout_id != current_key_layout_id)
|
||||
{
|
||||
uchr_handle = GetResource ('uchr', current_key_layout_id);
|
||||
last_key_layout_id = current_key_layout_id;
|
||||
}
|
||||
|
||||
if (uchr_handle)
|
||||
{
|
||||
OSStatus status;
|
||||
UInt16 key_action = er.what - keyDown;
|
||||
UInt32 modifier_key_state =
|
||||
(modifiers & ~mapped_modifiers) >> 8;
|
||||
UInt32 keyboard_type = LMGetKbdType ();
|
||||
SInt32 dead_key_state = 0;
|
||||
UniChar code;
|
||||
UniCharCount actual_length;
|
||||
|
||||
status = UCKeyTranslate ((UCKeyboardLayout *)*uchr_handle,
|
||||
keycode, key_action,
|
||||
modifier_key_state,
|
||||
keyboard_type,
|
||||
kUCKeyTranslateNoDeadKeysMask,
|
||||
&dead_key_state,
|
||||
1, &actual_length, &code);
|
||||
if (status == noErr && actual_length == 1)
|
||||
mac_set_unicode_keystroke_event (code, &inev);
|
||||
}
|
||||
#endif /* MAC_OSX */
|
||||
|
||||
if (inev.kind == NO_EVENT)
|
||||
{
|
||||
/* This code comes from Keyboard Resource,
|
||||
Appendix C of IM - Text. This is necessary
|
||||
since shift is ignored in KCHR table
|
||||
translation when option or command is pressed.
|
||||
It also does not translate correctly
|
||||
control-shift chars like C-% so mask off shift
|
||||
here also. */
|
||||
/* Mask off modifier keys that are mapped to some
|
||||
Emacs modifiers. */
|
||||
int new_modifiers = er.modifiers & ~mapped_modifiers;
|
||||
/* set high byte of keycode to modifier high byte*/
|
||||
int new_keycode = keycode | new_modifiers;
|
||||
Ptr kchr_ptr = (Ptr) GetScriptManagerVariable (smKCHRCache);
|
||||
unsigned long some_state = 0;
|
||||
UInt32 new_char_code;
|
||||
|
||||
new_char_code = KeyTranslate (kchr_ptr, new_keycode,
|
||||
&some_state);
|
||||
if (new_char_code == 0)
|
||||
/* Seems like a dead key. Append up-stroke. */
|
||||
new_char_code = KeyTranslate (kchr_ptr,
|
||||
new_keycode | 0x80,
|
||||
&some_state);
|
||||
if (new_char_code)
|
||||
{
|
||||
inev.kind = ASCII_KEYSTROKE_EVENT;
|
||||
inev.code = new_char_code & 0xff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (inev.kind == NO_EVENT)
|
||||
{
|
||||
inev.kind = ASCII_KEYSTROKE_EVENT;
|
||||
inev.code = er.message & charCodeMask;
|
||||
}
|
||||
|
||||
#if USE_CARBON_EVENTS
|
||||
inev.modifiers = mac_event_to_emacs_modifiers (eventRef);
|
||||
inev.modifiers = mac_event_to_emacs_modifiers (eventRef);
|
||||
#else
|
||||
inev.modifiers = mac_to_emacs_modifiers (er.modifiers);
|
||||
inev.modifiers = mac_to_emacs_modifiers (er.modifiers);
|
||||
#endif
|
||||
inev.modifiers |= (extra_keyboard_modifiers
|
||||
& (meta_modifier | alt_modifier
|
||||
| hyper_modifier | super_modifier));
|
||||
XSETFRAME (inev.frame_or_window, f);
|
||||
inev.modifiers |= (extra_keyboard_modifiers
|
||||
& (meta_modifier | alt_modifier
|
||||
| hyper_modifier | super_modifier));
|
||||
XSETFRAME (inev.frame_or_window, f);
|
||||
|
||||
#if TARGET_API_MAC_CARBON
|
||||
if (inev.kind == ASCII_KEYSTROKE_EVENT
|
||||
&& inev.code >= 0x80 && inev.modifiers)
|
||||
{
|
||||
OSStatus err;
|
||||
TextEncoding encoding = kTextEncodingMacRoman;
|
||||
TextToUnicodeInfo ttu_info;
|
||||
|
||||
UpgradeScriptInfoToTextEncoding (current_key_script,
|
||||
kTextLanguageDontCare,
|
||||
kTextRegionDontCare,
|
||||
NULL, &encoding);
|
||||
err = CreateTextToUnicodeInfoByEncoding (encoding, &ttu_info);
|
||||
if (err == noErr)
|
||||
{
|
||||
UniChar code;
|
||||
Str255 pstr;
|
||||
ByteCount unicode_len;
|
||||
|
||||
pstr[0] = 1;
|
||||
pstr[1] = inev.code;
|
||||
err = ConvertFromPStringToUnicode (ttu_info, pstr,
|
||||
sizeof (UniChar),
|
||||
&unicode_len, &code);
|
||||
if (err == noErr && unicode_len == sizeof (UniChar))
|
||||
mac_set_unicode_keystroke_event (code, &inev);
|
||||
DisposeTextToUnicodeInfo (&ttu_info);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
|
||||
case kHighLevelEvent:
|
||||
read_socket_inev = &inev;
|
||||
AEProcessAppleEvent (&er);
|
||||
read_socket_inev = NULL;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
38
src/w32.c
38
src/w32.c
@ -950,11 +950,11 @@ init_environment (char ** argv)
|
||||
struct stat ignored;
|
||||
char default_home[MAX_PATH];
|
||||
|
||||
static struct env_entry
|
||||
static const struct env_entry
|
||||
{
|
||||
char * name;
|
||||
char * def_value;
|
||||
} env_vars[] =
|
||||
} dflt_envvars[] =
|
||||
{
|
||||
{"HOME", "C:/"},
|
||||
{"PRELOAD_WINSOCK", NULL},
|
||||
@ -971,6 +971,17 @@ init_environment (char ** argv)
|
||||
{"LANG", NULL},
|
||||
};
|
||||
|
||||
#define N_ENV_VARS sizeof(dflt_envvars)/sizeof(dflt_envvars[0])
|
||||
|
||||
/* We need to copy dflt_envvars[] and work on the copy because we
|
||||
don't want the dumped Emacs to inherit the values of
|
||||
environment variables we saw during dumping (which could be on
|
||||
a different system). The defaults above must be left intact. */
|
||||
struct env_entry env_vars[N_ENV_VARS];
|
||||
|
||||
for (i = 0; i < N_ENV_VARS; i++)
|
||||
env_vars[i] = dflt_envvars[i];
|
||||
|
||||
/* For backwards compatibility, check if a .emacs file exists in C:/
|
||||
If not, then we can try to default to the appdata directory under the
|
||||
user's profile, which is more likely to be writable. */
|
||||
@ -1005,7 +1016,7 @@ init_environment (char ** argv)
|
||||
LOCALE_SABBREVLANGNAME | LOCALE_USE_CP_ACP,
|
||||
locale_name, sizeof (locale_name)))
|
||||
{
|
||||
for (i = 0; i < (sizeof (env_vars) / sizeof (env_vars[0])); i++)
|
||||
for (i = 0; i < N_ENV_VARS; i++)
|
||||
{
|
||||
if (strcmp (env_vars[i].name, "LANG") == 0)
|
||||
{
|
||||
@ -1069,7 +1080,7 @@ init_environment (char ** argv)
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < (sizeof (env_vars) / sizeof (env_vars[0])); i++)
|
||||
for (i = 0; i < N_ENV_VARS; i++)
|
||||
{
|
||||
if (!getenv (env_vars[i].name))
|
||||
{
|
||||
@ -1084,20 +1095,17 @@ init_environment (char ** argv)
|
||||
|
||||
if (lpval)
|
||||
{
|
||||
char buf1[SET_ENV_BUF_SIZE], buf2[SET_ENV_BUF_SIZE];
|
||||
|
||||
if (dwType == REG_EXPAND_SZ)
|
||||
{
|
||||
char buf1[SET_ENV_BUF_SIZE], buf2[SET_ENV_BUF_SIZE];
|
||||
|
||||
ExpandEnvironmentStrings ((LPSTR) lpval, buf1, sizeof(buf1));
|
||||
_snprintf (buf2, sizeof(buf2)-1, "%s=%s", env_vars[i].name, buf1);
|
||||
_putenv (strdup (buf2));
|
||||
}
|
||||
ExpandEnvironmentStrings ((LPSTR) lpval, buf1, sizeof(buf1));
|
||||
else if (dwType == REG_SZ)
|
||||
strcpy (buf1, lpval);
|
||||
if (dwType == REG_EXPAND_SZ || dwType == REG_SZ)
|
||||
{
|
||||
char buf[SET_ENV_BUF_SIZE];
|
||||
|
||||
_snprintf (buf, sizeof(buf)-1, "%s=%s", env_vars[i].name, lpval);
|
||||
_putenv (strdup (buf));
|
||||
_snprintf (buf2, sizeof(buf2)-1, "%s=%s", env_vars[i].name,
|
||||
buf1);
|
||||
_putenv (strdup (buf2));
|
||||
}
|
||||
|
||||
if (!dont_free)
|
||||
|
40
src/xfaces.c
40
src/xfaces.c
@ -6653,7 +6653,7 @@ best_matching_font (f, attrs, fonts, nfonts, width_ratio, needs_overstrike)
|
||||
best = NULL;
|
||||
|
||||
/* Find the best match among the non-scalable fonts. */
|
||||
for (i = 1; i < nfonts; ++i)
|
||||
for (i = 0; i < nfonts; ++i)
|
||||
if (!font_scalable_p (fonts + i)
|
||||
&& better_font_p (specified, fonts + i, best, 1, avgwidth))
|
||||
{
|
||||
@ -6694,30 +6694,30 @@ best_matching_font (f, attrs, fonts, nfonts, width_ratio, needs_overstrike)
|
||||
best = fonts + i;
|
||||
}
|
||||
}
|
||||
|
||||
if (needs_overstrike)
|
||||
{
|
||||
enum xlfd_weight want_weight = specified[XLFD_WEIGHT];
|
||||
enum xlfd_weight got_weight = best->numeric[XLFD_WEIGHT];
|
||||
|
||||
if (want_weight > XLFD_WEIGHT_MEDIUM && want_weight > got_weight)
|
||||
{
|
||||
/* We want a bold font, but didn't get one; try to use
|
||||
overstriking instead to simulate bold-face. However,
|
||||
don't overstrike an already-bold fontn unless the
|
||||
desired weight grossly exceeds the available weight. */
|
||||
if (got_weight > XLFD_WEIGHT_MEDIUM)
|
||||
*needs_overstrike = (got_weight - want_weight) > 2;
|
||||
else
|
||||
*needs_overstrike = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* We should have found SOME font. */
|
||||
if (best == NULL)
|
||||
abort ();
|
||||
|
||||
if (! exact_p && needs_overstrike)
|
||||
{
|
||||
enum xlfd_weight want_weight = specified[XLFD_WEIGHT];
|
||||
enum xlfd_weight got_weight = best->numeric[XLFD_WEIGHT];
|
||||
|
||||
if (want_weight > XLFD_WEIGHT_MEDIUM && want_weight > got_weight)
|
||||
{
|
||||
/* We want a bold font, but didn't get one; try to use
|
||||
overstriking instead to simulate bold-face. However,
|
||||
don't overstrike an already-bold fontn unless the
|
||||
desired weight grossly exceeds the available weight. */
|
||||
if (got_weight > XLFD_WEIGHT_MEDIUM)
|
||||
*needs_overstrike = (got_weight - want_weight) > 2;
|
||||
else
|
||||
*needs_overstrike = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (font_scalable_p (best))
|
||||
font_name = build_scalable_font_name (f, best, pt);
|
||||
else
|
||||
@ -7091,7 +7091,7 @@ realize_default_face (f)
|
||||
face = realize_face (c, attrs, 0, NULL, DEFAULT_FACE_ID);
|
||||
|
||||
#ifdef HAVE_WINDOW_SYSTEM
|
||||
#ifdef HAVE_X_WINDOWS
|
||||
#ifdef HAVE_X_WINDOWS
|
||||
if (FRAME_X_P (f) && face->font != FRAME_FONT (f))
|
||||
/* As the font specified for the frame was not acceptable as a
|
||||
font for the default face (perhaps because auto-scaled fonts
|
||||
|
12
src/xterm.c
12
src/xterm.c
@ -324,22 +324,10 @@ static int x_alloc_nearest_color_1 P_ ((Display *, Colormap, XColor *));
|
||||
static void x_set_window_size_1 P_ ((struct frame *, int, int, int));
|
||||
static const XColor *x_color_cells P_ ((Display *, int *));
|
||||
static void x_update_window_end P_ ((struct window *, int, int));
|
||||
void x_delete_display P_ ((struct x_display_info *));
|
||||
|
||||
static int x_io_error_quitter P_ ((Display *));
|
||||
void x_catch_errors P_ ((Display *));
|
||||
void x_uncatch_errors P_ ((void));
|
||||
void x_lower_frame P_ ((struct frame *));
|
||||
void x_scroll_bar_clear P_ ((struct frame *));
|
||||
int x_had_errors_p P_ ((Display *));
|
||||
void x_wm_set_size_hint P_ ((struct frame *, long, int));
|
||||
void x_raise_frame P_ ((struct frame *));
|
||||
void x_set_window_size P_ ((struct frame *, int, int, int));
|
||||
void x_wm_set_window_state P_ ((struct frame *, int));
|
||||
void x_wm_set_icon_pixmap P_ ((struct frame *, int));
|
||||
static struct terminal *x_create_terminal P_ ((struct x_display_info *));
|
||||
void x_delete_terminal P_ ((struct terminal *));
|
||||
void x_initialize P_ ((void));
|
||||
static void x_font_min_bounds P_ ((XFontStruct *, int *, int *));
|
||||
static int x_compute_min_glyph_bounds P_ ((struct frame *));
|
||||
static void x_update_end P_ ((struct frame *));
|
||||
|
10
src/xterm.h
10
src/xterm.h
@ -961,10 +961,6 @@ void x_delete_display P_ ((struct x_display_info *));
|
||||
void x_make_frame_visible P_ ((struct frame *));
|
||||
void x_iconify_frame P_ ((struct frame *));
|
||||
void x_wm_set_size_hint P_ ((struct frame *, long, int));
|
||||
void x_catch_errors P_ ((Display *));
|
||||
int x_had_errors_p P_ ((Display *));
|
||||
void x_uncatch_errors P_ ((void));
|
||||
void x_check_errors P_ ((Display *, char *));
|
||||
int x_text_icon P_ ((struct frame *, char *));
|
||||
int x_bitmap_icon P_ ((struct frame *, Lisp_Object));
|
||||
void x_set_window_size P_ ((struct frame *, int, int, int));
|
||||
@ -980,7 +976,10 @@ extern int x_bitmap_icon P_ ((struct frame *, Lisp_Object));
|
||||
extern void x_catch_errors P_ ((Display *));
|
||||
extern void x_check_errors P_ ((Display *, char *));
|
||||
extern int x_had_errors_p P_ ((Display *));
|
||||
extern int x_catching_errors P_ ((void));
|
||||
extern void x_uncatch_errors P_ ((void));
|
||||
extern void x_clear_errors P_ ((Display *));
|
||||
extern void x_fully_uncatch_errors P_ ((void));
|
||||
extern void x_set_window_size P_ ((struct frame *, int, int, int));
|
||||
extern void x_set_mouse_position P_ ((struct frame *, int, int));
|
||||
extern void x_set_mouse_pixel_position P_ ((struct frame *, int, int));
|
||||
@ -1000,6 +999,9 @@ extern void x_initialize P_ ((void));
|
||||
extern unsigned long x_copy_color P_ ((struct frame *, unsigned long));
|
||||
#ifdef USE_X_TOOLKIT
|
||||
extern XtAppContext Xt_app_con;
|
||||
extern int x_alloc_lighter_color_for_widget __P ((Widget, Display*, Colormap,
|
||||
unsigned long *,
|
||||
double, int));
|
||||
#endif
|
||||
extern void x_query_colors P_ ((struct frame *f, XColor *, int));
|
||||
extern void x_query_color P_ ((struct frame *f, XColor *));
|
||||
|
Loading…
x
Reference in New Issue
Block a user