summaryrefslogtreecommitdiff
path: root/app/xterm/Tekproc.c
diff options
context:
space:
mode:
Diffstat (limited to 'app/xterm/Tekproc.c')
-rw-r--r--app/xterm/Tekproc.c92
1 files changed, 48 insertions, 44 deletions
diff --git a/app/xterm/Tekproc.c b/app/xterm/Tekproc.c
index f02f7e836..c01fb9960 100644
--- a/app/xterm/Tekproc.c
+++ b/app/xterm/Tekproc.c
@@ -1,4 +1,4 @@
-/* $XTermId: Tekproc.c,v 1.155 2007/03/19 23:51:52 tom Exp $ */
+/* $XTermId: Tekproc.c,v 1.157 2007/07/10 19:53:11 tom Exp $ */
/*
* Warning, there be crufty dragons here.
@@ -948,8 +948,7 @@ TekExpose(Widget w,
rcnt = tekRefreshList->count;
Tparsestate = curstate = Talptable;
TRACE(("TekExpose resets data to replay %d bytes\n", rcnt));
- if (resource.wait_for_map)
- first_map_occurred();
+ first_map_occurred();
if (!tekscr->waitrefresh)
TekRefresh(tw);
}
@@ -958,20 +957,22 @@ TekExpose(Widget w,
void
TekRefresh(TekWidget tw)
{
- TekScreen *tekscr = TekScreenOf(tw);
- TScreen *screen = TScreenOf(term);
- static Cursor wait_cursor = None;
-
- if (wait_cursor == None)
- wait_cursor = make_colored_cursor(XC_watch,
- T_COLOR(screen, MOUSE_FG),
- T_COLOR(screen, MOUSE_BG));
- XDefineCursor(XtDisplay(tw), TWindow(tekscr), wait_cursor);
- XFlush(XtDisplay(tw));
- if (!setjmp(Tekjump))
- Tekparse(tw);
- XDefineCursor(XtDisplay(tw), TWindow(tekscr),
- (tekscr->TekGIN && GINcursor) ? GINcursor : tekscr->arrow);
+ if (tw != 0) {
+ TekScreen *tekscr = TekScreenOf(tw);
+ TScreen *screen = TScreenOf(term);
+ static Cursor wait_cursor = None;
+
+ if (wait_cursor == None)
+ wait_cursor = make_colored_cursor(XC_watch,
+ T_COLOR(screen, MOUSE_FG),
+ T_COLOR(screen, MOUSE_BG));
+ XDefineCursor(XtDisplay(tw), TWindow(tekscr), wait_cursor);
+ XFlush(XtDisplay(tw));
+ if (!setjmp(Tekjump))
+ Tekparse(tw);
+ XDefineCursor(XtDisplay(tw), TWindow(tekscr),
+ (tekscr->TekGIN && GINcursor) ? GINcursor : tekscr->arrow);
+ }
}
void
@@ -1845,38 +1846,41 @@ TekSimulatePageButton(TekWidget tw, Bool reset)
void
TekCopy(TekWidget tw)
{
- TekScreen *tekscr = TekScreenOf(tw);
- TScreen *screen = TScreenOf(term);
+ if (tw != 0) {
+ TekScreen *tekscr = TekScreenOf(tw);
+ TScreen *screen = TScreenOf(term);
- TekLink *Tp;
- char buf[32];
- char initbuf[5];
- int tekcopyfd;
+ TekLink *Tp;
+ char buf[32];
+ char initbuf[5];
+ int tekcopyfd;
- timestamp_filename(buf, "COPY");
- if (access(buf, F_OK) >= 0
- && access(buf, W_OK) < 0) {
- Bell(XkbBI_MinorError, 0);
- return;
- }
+ timestamp_filename(buf, "COPY");
+ if (access(buf, F_OK) >= 0
+ && access(buf, W_OK) < 0) {
+ Bell(XkbBI_MinorError, 0);
+ return;
+ }
#ifndef VMS
- if (access(".", W_OK) < 0) { /* can't write in directory */
- Bell(XkbBI_MinorError, 0);
- return;
- }
+ if (access(".", W_OK) < 0) { /* can't write in directory */
+ Bell(XkbBI_MinorError, 0);
+ return;
+ }
#endif
- if ((tekcopyfd = open_userfile(screen->uid, screen->gid, buf, False)) >= 0) {
- sprintf(initbuf, "%c%c%c%c",
- ANSI_ESC, (char) (tekscr->page.fontsize + '8'),
- ANSI_ESC, (char) (tekscr->page.linetype + '`'));
- write(tekcopyfd, initbuf, 4);
- Tp = &Tek0;
- do {
- write(tekcopyfd, Tp->data, Tp->count);
- Tp = Tp->next;
- } while (Tp);
- close(tekcopyfd);
+ tekcopyfd = open_userfile(screen->uid, screen->gid, buf, False);
+ if (tekcopyfd >= 0) {
+ sprintf(initbuf, "%c%c%c%c",
+ ANSI_ESC, (char) (tekscr->page.fontsize + '8'),
+ ANSI_ESC, (char) (tekscr->page.linetype + '`'));
+ write(tekcopyfd, initbuf, 4);
+ Tp = &Tek0;
+ do {
+ write(tekcopyfd, Tp->data, Tp->count);
+ Tp = Tp->next;
+ } while (Tp);
+ close(tekcopyfd);
+ }
}
}