Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
d2a51fd7
Commit
d2a51fd7
authored
Feb 02, 2012
by
Kenichi Handa
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Inhibit null-string composition component (Bug#6988).
parent
fce3fdeb
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
26 additions
and
6 deletions
+26
-6
lisp/ChangeLog
lisp/ChangeLog
+5
-0
lisp/composite.el
lisp/composite.el
+7
-3
src/ChangeLog
src/ChangeLog
+7
-0
src/xdisp.c
src/xdisp.c
+7
-3
No files found.
lisp/ChangeLog
View file @
d2a51fd7
2012-02-01 Kenichi Handa <handa@m17n.org>
* composite.el (compose-region, compose-string): Signal error for
a null string component (Bug#6988).
2012-01-31 Chong Yidong <cyd@gnu.org>
* frame.el (set-frame-font): New arg ALL-FRAMES.
...
...
lisp/composite.el
View file @
d2a51fd7
...
...
@@ -211,7 +211,7 @@ or a vector or list of integers and rules.
If it is a character, it is an alternate character to display instead
of the text in the region.
If it is a string, the elements are alternate characters. In
If it is a string, the elements are
one or more
alternate characters. In
this case, TAB element has a special meaning. If the first
character is TAB, the glyphs are displayed with left padding space
so that no pixel overlaps with the previous column. If the last
...
...
@@ -234,7 +234,9 @@ text in the composition."
(
let
((
modified-p
(
buffer-modified-p
))
(
inhibit-read-only
t
))
(
if
(
or
(
vectorp
components
)
(
listp
components
))
(
setq
components
(
encode-composition-components
components
)))
(
setq
components
(
encode-composition-components
components
))
(
if
(
=
(
length
components
)
0
)
(
error
"Invalid composition component: %s"
components
)))
(
compose-region-internal
start
end
components
modification-func
)
(
restore-buffer-modified-p
modified-p
)))
...
...
@@ -267,7 +269,9 @@ Optional 5th argument MODIFICATION-FUNC is a function to call to
adjust the composition when it gets invalid because of a change of
text in the composition."
(
if
(
or
(
vectorp
components
)
(
listp
components
))
(
setq
components
(
encode-composition-components
components
)))
(
setq
components
(
encode-composition-components
components
))
(
if
(
=
(
length
components
)
0
)
(
error
"Invalid composition component: %s"
components
)))
(
or
start
(
setq
start
0
))
(
or
end
(
setq
end
(
length
string
)))
(
compose-string-internal
string
start
end
components
modification-func
)
...
...
src/ChangeLog
View file @
d2a51fd7
2012-02-01 Kenichi Handa <handa@m17n.org>
* xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
NULL (Bug#6988).
(x_produce_glyphs): If the component of a composition is a null
string, set it->pixel_width to 1 to avoid zero-width glyph.
2012-01-31 Glenn Morris <rgm@gnu.org>
* nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
...
...
src/xdisp.c
View file @
d2a51fd7
...
...
@@ -22738,7 +22738,7 @@ compute_overhangs_and_x (struct glyph_string *s, int x, int backward_p)
ptrdiff_t cmp_id = (row)->glyphs[area][START].u.cmp.id; \
struct composition *cmp = composition_table[cmp_id]; \
XChar2b *char2b; \
struct glyph_string *first_s
IF_LINT (
= NULL
)
; \
struct glyph_string *first_s = NULL;
\
int n; \
\
char2b = (XChar2b *) alloca ((sizeof *char2b) * cmp->glyph_len); \
...
...
@@ -24400,7 +24400,7 @@ x_produce_glyphs (struct it *it)
/* Initialize the bounding box. */
if (pcm)
{
width = pcm->width;
width =
cmp->glyph_len > 0 ?
pcm->width
: 0
;
ascent = pcm->ascent;
descent = pcm->descent;
lbearing = pcm->lbearing;
...
...
@@ -24408,7 +24408,7 @@ x_produce_glyphs (struct it *it)
}
else
{
width = font->space_width;
width =
cmp->glyph_len > 0 ?
font->space_width
: 0
;
ascent = FONT_BASE (font);
descent = FONT_DESCENT (font);
lbearing = 0;
...
...
@@ -24595,6 +24595,10 @@ x_produce_glyphs (struct it *it)
it->glyph_row->contains_overlapping_glyphs_p = 1;
it->pixel_width = cmp->pixel_width;
if (it->pixel_width == 0)
/* We assure that all visible glyphs have at least 1-pixel
width. */
it->pixel_width = 1;
it->ascent = it->phys_ascent = cmp->ascent;
it->descent = it->phys_descent = cmp->descent;
if (face->box != FACE_NO_BOX)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment