Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
6e8290aa
Commit
6e8290aa
authored
Jul 31, 1991
by
Jim Blandy
Browse files
*** empty log message ***
parent
6f8e447f
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
62 additions
and
21 deletions
+62
-21
lisp/mail/rmailedit.el
lisp/mail/rmailedit.el
+1
-1
src/keymap.c
src/keymap.c
+4
-1
src/xdisp.c
src/xdisp.c
+57
-19
No files found.
lisp/mail/rmailedit.el
View file @
6e8290aa
...
...
@@ -23,7 +23,7 @@
(
defvar
rmail-edit-map
nil
)
(
if
rmail-edit-map
nil
(
setq
rmail-edit-map
(
nconc
(
make-sparse-keymap
)
text-mode-map
))
(
setq
rmail-edit-map
(
nconc
(
make-sparse-keymap
)
(
cdr
text-mode-map
))
)
(
define-key
rmail-edit-map
"\C-c\C-c"
'rmail-cease-edit
)
(
define-key
rmail-edit-map
"\C-c\C-]"
'rmail-abort-edit
))
...
...
src/keymap.c
View file @
6e8290aa
...
...
@@ -401,7 +401,10 @@ DEF is anything that can be a key's definition:\n\
or another symbol whose function definition is used, etc.
\n
\
a cons (STRING . DEFN), meaning that DEFN is the definition
\n
\
(DEFN should be a valid definition in its own right),
\n
\
or a cons (KEYMAP . CHAR), meaning use definition of CHAR in map KEYMAP."
)
or a cons (KEYMAP . CHAR), meaning use definition of CHAR in map KEYMAP.
\n
\
\n
\
If KEYMAP is a sparse keymap, the pair binding KEY to DEF is added at
\n
\
the front of KEYMAP."
)
(
keymap
,
key
,
def
)
register
Lisp_Object
keymap
;
Lisp_Object
key
;
...
...
src/xdisp.c
View file @
6e8290aa
...
...
@@ -211,7 +211,10 @@ message (m, a1, a2, a3)
fprintf
(
stderr
,
"
\n
"
);
fflush
(
stderr
);
}
else
if
(
INTERACTIVE
)
/* A null message buffer means that the screen hasn't really been
initialized yet. Error messages get trapped by the condition-case
in command-line, so this must be just an informative message; toss it. */
else
if
(
INTERACTIVE
&&
SCREEN_MESSAGE_BUF
(
selected_screen
))
{
#ifdef NO_ARG_ARRAY
int
a
[
3
];
...
...
@@ -224,7 +227,7 @@ message (m, a1, a2, a3)
#else
doprnt
(
SCREEN_MESSAGE_BUF
(
selected_screen
),
SCREEN_WIDTH
(
selected_screen
),
m
,
0
,
3
,
&
a1
);
#endif
/* NO_ARG_ARRAY */
#endif
/* NO_ARG_ARRAY */
echo_area_glyphs
=
SCREEN_MESSAGE_BUF
(
selected_screen
);
...
...
@@ -244,6 +247,9 @@ void
message1
(
m
)
char
*
m
;
{
/* A null message buffer means that the screen hasn't really been
initialized yet; write the error message on the standard error
as if we were non-interactive. */
if
(
noninteractive
)
{
if
(
noninteractive_need_newline
)
...
...
@@ -252,7 +258,10 @@ message1 (m)
fprintf
(
stderr
,
"%s
\n
"
,
m
);
fflush
(
stderr
);
}
else
if
(
INTERACTIVE
)
/* A null message buffer means that the screen hasn't really been
initialized yet. Error messages get trapped by the condition-case
in command-line, so this must be just an informative message; toss it. */
else
if
(
INTERACTIVE
&&
SCREEN_MESSAGE_BUF
(
selected_screen
))
{
echo_area_glyphs
=
m
;
do_pending_window_change
();
...
...
@@ -341,6 +350,10 @@ redisplay ()
screen_garbaged
=
0
;
}
/* Normally the message* functions will have already displayed and
updated the echo area, but the screen may have been trashed, or
the update may have been preempted, so display the echo area
again here. */
if
(
echo_area_glyphs
||
previous_echo_glyphs
)
{
echo_area_display
();
...
...
@@ -362,10 +375,6 @@ redisplay ()
SCREEN_SCROLL_BOTTOM_VPOS
(
XSCREEN
(
w
->
screen
))
=
-
1
;
all_windows
=
update_mode_lines
||
buffer_shared
>
1
;
#ifdef MULTI_SCREEN
all_windows
|=
(
XTYPE
(
Vglobal_minibuffer_screen
)
==
Lisp_Screen
&&
selected_screen
!=
XSCREEN
(
Vglobal_minibuffer_screen
));
#endif
/* MULTI_SCREEN */
/* If specs for an arrow have changed, do thorough redisplay
to ensure we remove any arrow that should no longer exist. */
...
...
@@ -533,8 +542,25 @@ redisplay ()
}
else
#endif
/* MULTI_SCREEN */
if
(
SCREEN_VISIBLE_P
(
selected_screen
))
pause
=
update_screen
(
selected_screen
,
0
,
0
);
{
if
(
SCREEN_VISIBLE_P
(
selected_screen
))
pause
=
update_screen
(
selected_screen
,
0
,
0
);
#ifdef MULTI_SCREEN
/* We called echo_area_display at the top of this function. If
the echo area is on another screen, that may have put text on
a screen other than the selected one, so the above call to
update_screen would not have caught it. Catch it here. */
if
(
echo_area_glyphs
||
previous_echo_glyphs
)
{
SCREEN_PTR
mini_screen
=
XSCREEN
(
WINDOW_SCREEN
(
XWINDOW
(
minibuf_window
)));
if
(
mini_screen
!=
selected_screen
)
pause
|=
update_screen
(
mini_screen
,
0
,
0
);
}
#endif
}
/* If screen does not match, prevent doing single-line-update next time.
Also, don't forget to check every line to update the arrow. */
...
...
@@ -1013,7 +1039,19 @@ try_window_id (window)
beg_unchanged
+
1
,
10000
,
10000
,
width
,
hscroll
,
pos_tab_offset
(
w
,
start
));
if
(
bp
.
vpos
>=
height
)
return
point
<
bp
.
bufpos
&&
!
bp
.
contin
;
{
if
(
point
<
bp
.
bufpos
&&
!
bp
.
contin
)
{
/* All changes are below the screen, and point is on the screen.
We don't need to change the screen at all.
But we need to update window_end_pos to account for
any change in buffer size. */
XFASTINT
(
w
->
window_end_vpos
)
=
height
;
XFASTINT
(
w
->
window_end_pos
)
=
Z
-
bp
.
bufpos
;
return
1
;
}
return
0
;
}
vpos
=
bp
.
vpos
;
...
...
@@ -1496,7 +1534,7 @@ display_text_line (w, start, vpos, hpos, taboffset)
while
((
p1
-
startp
+
taboffset
+
hscroll
-
(
hscroll
>
0
))
%
tab_width
);
}
else
if
(
c
==
Ctl
(
'M'
)
&&
selective
==
-
1
)
else
if
(
c
==
Ctl
(
'M'
)
&&
selective
==
-
1
)
{
pos
=
find_next_newline
(
pos
,
1
);
if
(
FETCH_CHAR
(
pos
-
1
)
==
'\n'
)
...
...
@@ -1521,7 +1559,7 @@ display_text_line (w, start, vpos, hpos, taboffset)
*
p1
=
(
dp
&&
XTYPE
(
DISP_CTRL_GLYPH
(
dp
))
==
Lisp_Int
?
XINT
(
DISP_CTRL_GLYPH
(
dp
))
:
'^'
);
p1
++
;
if
(
p1
>=
startp
)
if
(
p1
>=
startp
&&
p1
<
endp
)
*
p1
=
c
^
0100
;
p1
++
;
}
...
...
@@ -1531,13 +1569,13 @@ display_text_line (w, start, vpos, hpos, taboffset)
*
p1
=
(
dp
&&
XTYPE
(
DISP_ESCAPE_GLYPH
(
dp
))
==
Lisp_Int
?
XINT
(
DISP_ESCAPE_GLYPH
(
dp
))
:
'\\'
);
p1
++
;
if
(
p1
>=
startp
)
if
(
p1
>=
startp
&&
p1
<
endp
)
*
p1
=
(
c
>>
6
)
+
'0'
;
p1
++
;
if
(
p1
>=
startp
)
if
(
p1
>=
startp
&&
p1
<
endp
)
*
p1
=
(
7
&
(
c
>>
3
))
+
'0'
;
p1
++
;
if
(
p1
>=
startp
)
if
(
p1
>=
startp
&&
p1
<
endp
)
*
p1
=
(
7
&
c
)
+
'0'
;
p1
++
;
}
...
...
@@ -2170,7 +2208,7 @@ display_string (w, vpos, string, hpos, truncate, mincol, maxcol)
*
p1
=
(
dp
&&
XTYPE
(
DISP_CTRL_GLYPH
(
dp
))
==
Lisp_Int
?
XINT
(
DISP_CTRL_GLYPH
(
dp
))
:
'^'
);
p1
++
;
if
(
p1
>=
start
)
if
(
p1
>=
start
&&
p1
<
end
)
*
p1
=
c
^
0100
;
p1
++
;
}
...
...
@@ -2180,13 +2218,13 @@ display_string (w, vpos, string, hpos, truncate, mincol, maxcol)
*
p1
=
(
dp
&&
XTYPE
(
DISP_ESCAPE_GLYPH
(
dp
))
==
Lisp_Int
?
XINT
(
DISP_ESCAPE_GLYPH
(
dp
))
:
'\\'
);
p1
++
;
if
(
p1
>=
start
)
if
(
p1
>=
start
&&
p1
<
end
)
*
p1
=
(
c
>>
6
)
+
'0'
;
p1
++
;
if
(
p1
>=
start
)
if
(
p1
>=
start
&&
p1
<
end
)
*
p1
=
(
7
&
(
c
>>
3
))
+
'0'
;
p1
++
;
if
(
p1
>=
start
)
if
(
p1
>=
start
&&
p1
<
end
)
*
p1
=
(
7
&
c
)
+
'0'
;
p1
++
;
}
...
...
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