Merge from emacs-24; up to 2012-12-06T20:16:38Z!monnier@iro.umontreal.ca

This commit is contained in:
Glenn Morris 2013-01-04 11:22:37 -08:00
commit 0f668a4db4
16 changed files with 1737 additions and 39 deletions

View file

@ -1,3 +1,7 @@
2013-01-04 Glenn Morris <rgm@gnu.org>
* info/dir: Add htmlfontify.
2013-01-04 Paul Eggert <eggert@cs.ucla.edu>
Merge from gnulib, incorporating:

View file

@ -1,3 +1,7 @@
2013-01-04 Ari Roponen <ari.roponen@gmail.com> (tiny change)
* hash.texi (Defining Hash): Fix typo. (Bug#13345)
2013-01-04 Stefan Monnier <monnier@iro.umontreal.ca>
* files.texi (File Attributes): Undocument return format of file-acl.

View file

@ -293,7 +293,7 @@ compared case-insensitively.
@example
(defun case-fold-string= (a b)
(compare-strings a nil nil b nil nil t))
(eq t (compare-strings a nil nil b nil nil t)))
(defun case-fold-string-hash (a)
(sxhash (upcase a)))

View file

@ -1,3 +1,19 @@
2013-01-04 Glenn Morris <rgm@gnu.org>
* Makefile.in (INFO_TARGETS, DVI_TARGETS, PDF_TARGETS):
Add htmlfontify.
(htmlfontify, $(buildinfodir)/htmlfontify$(INFO_EXT))
(htmlfontify.dvi, htmlfontify.pdf): New targets.
* makefile.w32-in (INFO_TARGETS, DVI_TARGETS, clean): Add htmlfontify.
($(infodir)/htmlfontify$(INFO_EXT), htmlfontify.dvi): New targets.
* htmlfontify.texi: Miscellaneous fixes and updates.
Set copyright to FSF, update license to GFDL 1.3+.
2013-01-04 Vivek Dasmohapatra <vivek@etla.org>
* htmlfontify.texi: New file.
2013-01-02 Jay Belanger <jay.p.belanger@gmail.com>
* calc.texi (Free-Form Dates): Expand on the date reading

View file

@ -43,7 +43,7 @@ MAKEINFO_OPTS = --force -I$(emacsdir)
INFO_TARGETS = ada-mode auth autotype bovine calc ccmode cl \
dbus dired-x ebrowse ede ediff edt eieio \
emacs-mime epa erc ert eshell eudc efaq \
flymake forms gnus emacs-gnutls idlwave info.info \
flymake forms gnus emacs-gnutls htmlfontify idlwave info.info \
mairix-el message mh-e newsticker nxml-mode \
org pcl-cvs pgg rcirc remember reftex sasl \
sc semantic ses sieve smtpmail speedbar srecode tramp \
@ -75,6 +75,7 @@ DVI_TARGETS = \
forms.dvi \
gnus.dvi \
emacs-gnutls.dvi \
htmlfontify.dvi \
idlwave.dvi \
info.dvi \
mairix-el.dvi \
@ -129,6 +130,7 @@ PDF_TARGETS = \
flymake.pdf \
forms.pdf \
gnus.pdf \
htmlfontify.pdf \
emacs-gnutls.pdf \
idlwave.pdf \
info.pdf \
@ -440,6 +442,15 @@ gnus.pdf: ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi ${gfdl}
cp gnustmp.pdf $@
rm gnustmp.*
htmlfontify : $(buildinfodir)/htmlfontify$(INFO_EXT)
$(buildinfodir)/htmlfontify$(INFO_EXT): ${srcdir}/htmlfontify.texi ${gfdl}
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/htmlfontify.texi
htmlfontify.dvi: ${srcdir}/htmlfontify.texi ${gfdl}
$(ENVADD) $(TEXI2DVI) ${srcdir}/htmlfontify.texi
htmlfontify.pdf: ${srcdir}/htmlfontify.texi ${gfdl}
$(ENVADD) $(TEXI2PDF) ${srcdir}/htmlfontify.texi
# NB this one needs --no-split even without a .info extension.
idlwave : $(buildinfodir)/idlwave$(INFO_EXT)
$(buildinfodir)/idlwave$(INFO_EXT): ${srcdir}/idlwave.texi ${gfdl}

1609
doc/misc/htmlfontify.texi Normal file

File diff suppressed because it is too large Load diff

View file

@ -56,7 +56,7 @@ INFO_TARGETS = $(infodir)/ccmode$(INFO_EXT) \
$(infodir)/auth$(INFO_EXT) $(infodir)/eieio$(INFO_EXT) $(infodir)/ede$(INFO_EXT) \
$(infodir)/semantic$(INFO_EXT) $(infodir)/edt$(INFO_EXT) $(infodir)/emacs-gnutls$(INFO_EXT) \
$(infodir)/srecode$(INFO_EXT) $(infodir)/bovine$(INFO_EXT) \
$(infodir)/wisent$(INFO_EXT)
$(infodir)/wisent$(INFO_EXT) $(infodir)/htmlfontify$(INFO_EXT)
DVI_TARGETS = calc.dvi cc-mode.dvi cl.dvi dbus.dvi dired-x.dvi \
ediff.dvi forms.dvi gnus.dvi message.dvi emacs-mime.dvi \
sieve.dvi pgg.dvi mh-e.dvi \
@ -68,7 +68,7 @@ DVI_TARGETS = calc.dvi cc-mode.dvi cl.dvi dbus.dvi dired-x.dvi \
remember.dvi nxml-mode.dvi \
epa.dvi mairix-el.dvi sasl.dvi auth.dvi eieio.dvi ede.dvi \
semantic.dvi edt.dvi emacs-gnutls.dvi srecode.dvi bovine.dvi \
wisent.dvi
wisent.dvi htmlfontify.dvi
INFOSOURCES = info.texi
# The following rule does not work with all versions of `make'.
@ -374,6 +374,12 @@ $(infodir)/wisent$(INFO_EXT): wisent.texi
wisent.dvi: wisent.texi
$(ENVADD) $(TEXI2DVI) $(srcdir)/wisent.texi
$(infodir)/htmlfontify$(INFO_EXT): htmlfontify.texi
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ htmlfontify.texi
htmlfontify.dvi: htmlfontify.texi
$(ENVADD) $(TEXI2DVI) $(srcdir)/htmlfontify.texi
$(INFO_TARGETS): doclicense.texi
$(DVI_TARGETS): doclicense.texi
@ -406,7 +412,8 @@ clean: mostlyclean
$(infodir)/eieio* $(infodir)/ede* \
$(infodir)/semantic* $(infodir)edt* \
$(infodir)/emacs-gnutls* $(infodir)/srecode* \
$(infodir)/bovine* $(infodir)/wisent*
$(infodir)/bovine* $(infodir)/wisent* \
$(infodir)/htmlfontify*
distclean: clean
- $(DEL) makefile

View file

@ -74,6 +74,7 @@ Emacs misc features
* Flymake: (flymake). A universal on-the-fly syntax checker.
* Forms: (forms). Emacs package for editing data bases
by filling in forms.
* Htmlfontify: (htmlfontify). Convert source code to html.
* PCL-CVS: (pcl-cvs). Emacs front-end to CVS.
* RefTeX: (reftex). Emacs support for LaTeX cross-references
and citations.

View file

@ -1,3 +1,21 @@
2013-01-04 Michael Albinus <michael.albinus@gmx.de>
* net/tramp-sh.el (tramp-set-file-uid-gid): UID and GID must be
non-negative integers. Otherwise, the default values are used.
(tramp-convert-file-attributes): Convert uid and gid to integers.
2013-01-04 Glenn Morris <rgm@gnu.org>
* term.el (term-handle-colors-array): Ensure face attributes
are fully specified, not nil. (Bug#13337)
* term.el (term-default-fg-color, term-default-bg-color):
Fix custom type.
* progmodes/etags.el (tags-compression-info-list): Doc fix.
(tag-find-file-of-tag-noselect): Check auto-compression-mode
rather than 'jka-compr being loaded. (Bug#13338)
2013-01-04 Wesley Dawson <whd@lavabit.com> (tiny change)
* icomplete.el (icomplete-completions):

View file

@ -1452,23 +1452,22 @@ of."
(defun tramp-set-file-uid-gid (filename &optional uid gid)
"Set the ownership for FILENAME.
If UID and GID are provided, these values are used; otherwise uid
and gid of the corresponding user is taken. Both parameters must be integers."
and gid of the corresponding user is taken. Both parameters must
be non-negative integers."
;; Modern Unices allow chown only for root. So we might need
;; another implementation, see `dired-do-chown'. OTOH, it is mostly
;; working with su(do)? when it is needed, so it shall succeed in
;; the majority of cases.
;; Don't modify `last-coding-system-used' by accident.
(let ((last-coding-system-used last-coding-system-used)
(uid (and (numberp uid) (round uid)))
(gid (and (numberp gid) (round gid))))
(let ((last-coding-system-used last-coding-system-used))
(if (file-remote-p filename)
(with-parsed-tramp-file-name filename nil
(if (and (zerop (user-uid)) (tramp-local-host-p v))
;; If we are root on the local host, we can do it directly.
(tramp-set-file-uid-gid localname uid gid)
(let ((uid (or (and (integerp uid) uid)
(let ((uid (or (and (natnump uid) uid)
(tramp-get-remote-uid v 'integer)))
(gid (or (and (integerp gid) gid)
(gid (or (and (natnump gid) gid)
(tramp-get-remote-gid v 'integer))))
(tramp-send-command
v (format
@ -1477,8 +1476,8 @@ and gid of the corresponding user is taken. Both parameters must be integers."
;; We handle also the local part, because there doesn't exist
;; `set-file-uid-gid'. On W32 "chown" might not work.
(let ((uid (or (and (integerp uid) uid) (tramp-get-local-uid 'integer)))
(gid (or (and (integerp gid) gid) (tramp-get-local-gid 'integer))))
(let ((uid (or (and (natnump uid) uid) (tramp-get-local-uid 'integer)))
(gid (or (and (natnump gid) gid) (tramp-get-local-gid 'integer))))
(tramp-compat-call-process
"chown" nil nil nil
(format "%d:%d" uid gid) (tramp-shell-quote-argument filename))))))
@ -4665,7 +4664,7 @@ raises an error."
command (buffer-string))))))))
(defun tramp-convert-file-attributes (vec attr)
"Convert file-attributes ATTR generated by perl script, stat or ls.
"Convert `file-attributes' ATTR generated by perl script, stat or ls.
Convert file mode bits to string and set virtual device number.
Return ATTR."
(when attr
@ -4673,6 +4672,17 @@ Return ATTR."
(when (stringp (car attr))
(while (string-match tramp-color-escape-sequence-regexp (car attr))
(setcar attr (replace-match "" nil nil (car attr)))))
;; Convert uid and gid. Use -1 as indication of unusable value.
(when (and (numberp (nth 2 attr)) (< (nth 2 attr) 0))
(setcar (nthcdr 2 attr) -1))
(when (and (floatp (nth 2 attr))
(<= (nth 2 attr) (tramp-compat-most-positive-fixnum)))
(setcar (nthcdr 2 attr) (round (nth 2 attr))))
(when (and (numberp (nth 3 attr)) (< (nth 3 attr) 0))
(setcar (nthcdr 3 attr) -1))
(when (and (floatp (nth 3 attr))
(<= (nth 3 attr) (tramp-compat-most-positive-fixnum)))
(setcar (nthcdr 3 attr) (round (nth 3 attr))))
;; Convert last access time.
(unless (listp (nth 4 attr))
(setcar (nthcdr 4 attr)

View file

@ -67,11 +67,8 @@ Use the `etags' program to make a tags table file."
;;;###autoload
(defcustom tags-compression-info-list
(purecopy '("" ".Z" ".bz2" ".gz" ".xz" ".tgz"))
"List of extensions tried by etags when jka-compr is used.
An empty string means search the non-compressed file.
These extensions will be tried only if jka-compr was activated
\(i.e. via customize of `auto-compression-mode' or by calling the function
`auto-compression-mode')."
"List of extensions tried by etags when `auto-compression-mode' is on.
An empty string means search the non-compressed file."
:version "24.1" ; added xz
:type '(repeat string)
:group 'etags)
@ -1182,7 +1179,7 @@ error message."
"Find the right line in the specified FILE."
;; If interested in compressed-files, search files with extensions.
;; Otherwise, search only the real file.
(let* ((buffer-search-extensions (if (featurep 'jka-compr)
(let* ((buffer-search-extensions (if auto-compression-mode
tags-compression-info-list
'("")))
the-buffer
@ -1206,7 +1203,7 @@ error message."
(setq file-search-extensions (cdr file-search-extensions))
(setq the-buffer (find-file-noselect (concat file (car file-search-extensions))))))
(if (not the-buffer)
(if (featurep 'jka-compr)
(if auto-compression-mode
(error "File %s (with or without extensions %s) not found" file tags-compression-info-list)
(error "File %s not found" file))
(set-buffer the-buffer))))

View file

@ -778,14 +778,14 @@ Buffer local variable.")
(defcustom term-default-fg-color nil
"If non-nil, default color for foreground in Term mode."
:group 'term
:type 'string)
:type '(choice (const nil) (string :tag "color")))
(make-obsolete-variable 'term-default-fg-color "use the face `term' instead."
"24.3")
(defcustom term-default-bg-color nil
"If non-nil, default color for foreground in Term mode."
:group 'term
:type 'string)
:type '(choice (const nil) (string :tag "color")))
(make-obsolete-variable 'term-default-bg-color "use the face `term' instead."
"24.3")
@ -3222,18 +3222,24 @@ See `term-prompt-regexp'."
(let ((color
(if term-ansi-current-reverse
(face-foreground
(elt ansi-term-color-vector term-ansi-current-color))
(elt ansi-term-color-vector term-ansi-current-color)
nil 'default)
(face-background
(elt ansi-term-color-vector term-ansi-current-bg-color)))))
(elt ansi-term-color-vector term-ansi-current-bg-color)
nil 'default))))
(setq term-current-face
(list :background color
:foreground color))
) ;; No need to bother with anything else if it's invisible.
(setq term-current-face
(list :foreground
(face-foreground (elt ansi-term-color-vector term-ansi-current-color))
(face-foreground
(elt ansi-term-color-vector term-ansi-current-color)
nil 'default)
:background
(face-background (elt ansi-term-color-vector term-ansi-current-bg-color))
(face-background
(elt ansi-term-color-vector term-ansi-current-bg-color)
nil 'default)
:inverse-video term-ansi-current-reverse))
(when term-ansi-current-bold

View file

@ -1,3 +1,15 @@
2013-01-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* nsterm.m (ns_draw_underwave):
* w32term.c (w32_draw_underwave):
* xterm.c (x_draw_underwave): Make underwave look more triangular
and also degrade gracefully for small fonts. (Bug#13000)
* nsterm.m (ns_draw_text_decoration):
* w32term.c (x_draw_glyph_string):
* xterm.c (x_draw_glyph_string): Don't use previous underline
thickness and position if previous underline type is underwave.
2013-01-04 Stefan Monnier <monnier@iro.umontreal.ca>
* fileio.c (Ffile_acl): Undocument return format.

View file

@ -2566,7 +2566,7 @@ Note that CURSOR_WIDTH is meaningful only for (h)bar cursors.
Draw a wavy line under glyph string s. The wave fills wave_height
pixels from y.
x wave_length = 3
x wave_length = 2
--
y * * * * *
|* * * * * * * * *
@ -2576,14 +2576,14 @@ Note that CURSOR_WIDTH is meaningful only for (h)bar cursors.
static void
ns_draw_underwave (struct glyph_string *s, CGFloat width, CGFloat x)
{
int wave_height = 3, wave_length = 3;
int wave_height = 3, wave_length = 2;
int y, dx, dy, odd, xmax;
NSPoint a, b;
NSRect waveClip;
dx = wave_length;
dy = wave_height - 1;
y = s->ybase + 1;
y = s->ybase - wave_height + 3;
xmax = x + width;
/* Find and set clipping rectangle */
@ -2592,10 +2592,10 @@ Note that CURSOR_WIDTH is meaningful only for (h)bar cursors.
NSRectClip (waveClip);
/* Draw the waves */
a.x = x - ((int)(x) % dx);
a.x = x - ((int)(x) % dx) + 0.5;
b.x = a.x + dx;
odd = (int)(a.x/dx) % 2;
a.y = b.y = y;
a.y = b.y = y + 0.5;
if (odd)
a.y += dy;
@ -2606,7 +2606,7 @@ Note that CURSOR_WIDTH is meaningful only for (h)bar cursors.
{
[NSBezierPath strokeLineFromPoint:a toPoint:b];
a.x = b.x, a.y = b.y;
b.x += dx, b.y = y + odd*dy;
b.x += dx, b.y = y + 0.5 + odd*dy;
odd = !odd;
}
@ -2646,6 +2646,7 @@ Note that CURSOR_WIDTH is meaningful only for (h)bar cursors.
/* If the prev was underlined, match its appearance. */
if (s->prev && s->prev->face->underline_p
&& s->prev->face->underline_type == FACE_UNDER_LINE
&& s->prev->underline_thickness > 0)
{
thickness = s->prev->underline_thickness;

View file

@ -358,7 +358,7 @@ w32_restore_glyph_string_clip (struct glyph_string *s)
void
w32_draw_underwave (struct glyph_string *s, COLORREF color)
{
int wave_height = 2, wave_length = 3;
int wave_height = 3, wave_length = 2;
int dx, dy, x0, y0, width, x1, y1, x2, y2, odd, xmax;
XRectangle wave_clip, string_clip, final_clip;
RECT w32_final_clip, w32_string_clip;
@ -367,7 +367,7 @@ w32_draw_underwave (struct glyph_string *s, COLORREF color)
dx = wave_length;
dy = wave_height - 1;
x0 = s->x;
y0 = s->ybase + 1;
y0 = s->ybase - wave_height + 3;
width = s->width;
xmax = x0 + width;
@ -2456,7 +2456,8 @@ x_draw_glyph_string (struct glyph_string *s)
unsigned long thickness, position;
int y;
if (s->prev && s->prev->face->underline_p)
if (s->prev && s->prev->face->underline_p
&& s->prev->face->underline_type == FACE_UNDER_LINE)
{
/* We use the same underline style as the previous one. */
thickness = s->prev->underline_thickness;

View file

@ -2631,14 +2631,14 @@ x_draw_stretch_glyph_string (struct glyph_string *s)
static void
x_draw_underwave (struct glyph_string *s)
{
int wave_height = 2, wave_length = 3;
int wave_height = 3, wave_length = 2;
int dx, dy, x0, y0, width, x1, y1, x2, y2, odd, xmax;
XRectangle wave_clip, string_clip, final_clip;
dx = wave_length;
dy = wave_height - 1;
x0 = s->x;
y0 = s->ybase + 1;
y0 = s->ybase - wave_height + 3;
width = s->width;
xmax = x0 + width;
@ -2800,7 +2800,8 @@ x_draw_glyph_string (struct glyph_string *s)
unsigned long thickness, position;
int y;
if (s->prev && s->prev->face->underline_p)
if (s->prev && s->prev->face->underline_p
&& s->prev->face->underline_type == FACE_UNDER_LINE)
{
/* We use the same underline style as the previous one. */
thickness = s->prev->underline_thickness;