1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-02-03 20:24:29 +00:00
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:
Karoly Lorentey 2006-05-24 09:13:31 +00:00
commit 40a1b46245
85 changed files with 4321 additions and 544 deletions

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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/>

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff

686
etc/pt-br-refcard.tex Normal file
View 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

View File

@ -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

View File

@ -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

View File

@ -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

Binary file not shown.

View File

@ -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.

View File

@ -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);

View File

@ -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'

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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))))

View File

@ -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.

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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"))

View File

@ -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))

View File

@ -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

View File

@ -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.

View File

@ -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).

View File

@ -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)))))

View File

@ -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"

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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)))))

View File

@ -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)))
;;

View File

@ -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

View File

@ -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.

View File

@ -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)

View File

@ -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))

View File

@ -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))))

View File

@ -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))

View File

@ -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.

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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}.

View File

@ -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

View File

@ -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

View File

@ -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):

View File

@ -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);
}

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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}.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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",
&current_buffer->cursor_in_non_selected_windows, Qnil,

View File

@ -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)

View File

@ -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;

View File

@ -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:

View File

@ -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)

View File

@ -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

View File

@ -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 *));

View File

@ -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 *));