Merge from emacs-24; up to 2012-12-06T20:16:38Z!monnier@iro.umontreal.ca
This commit is contained in:
commit
0f668a4db4
16 changed files with 1737 additions and 39 deletions
|
@ -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:
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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)))
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
1609
doc/misc/htmlfontify.texi
Normal file
File diff suppressed because it is too large
Load diff
|
@ -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
|
||||
|
|
1
info/dir
1
info/dir
|
@ -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.
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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))))
|
||||
|
|
18
lisp/term.el
18
lisp/term.el
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
13
src/nsterm.m
13
src/nsterm.m
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue