ports/misc/screen-shm/patches/patch-window_c

80 lines
1.9 KiB
Text
Raw Normal View History

2023-08-16 22:26:55 +00:00
Index: window.c
--- window.c.orig
+++ window.c
@@ -1387,6 +1387,7 @@ char **args, *ttyn;
return pid;
}
+#if 0
void
execvpe(prog, args, env)
char *prog, **args, **env;
@@ -1432,6 +1433,7 @@ char *prog, **args, **env;
if (eaccess)
errno = EACCES;
}
+#endif
#ifdef PSEUDOS
@@ -1992,6 +1994,59 @@ char *data;
Msg(0, "Window %d: silence for %d seconds", p->w_number, p->w_silencewait);
}
}
+
+
+#ifdef IPC_EXPORT_IMAGE
+
+void
+CopyWinImage( p, dest )
+struct win *p;
+char *dest;
+{
+ register char *s, *d = dest, *m;
+ register int x, y;
+ struct display *display = p->w_pdisplay;
+ int st = (display) ? D_status : 0;
+
+ if( p && p->w_mlines )
+ {
+ *d++ = p->w_width; /* scrdim x */
+ *d++ = p->w_height; /* scrdim y */
+ *d++ = (st) ? D_status_len : p->w_x; /* csrpos x */
+ *d++ = (st) ? STATLINE : p->w_y; /* csrpos y */
+ /* copy window image to buffer */
+ for( y = 0; y < p->w_height; y++ )
+ {
+ s = p->w_mlines[y].image;
+ x = p->w_width;
+ if( st && y == STATLINE )
+ for( m = D_status_lastmsg; *m && x; *d++ = *m++, s++, x-- );
+ for( ; x; *d++ = *s++, x-- );
+ }
+ /* copy attributes from window image to buffer */
+ for( y = 0; y < p->w_height; y++ )
+ {
+ s = p->w_mlines[y].attr;
+ x = p->w_width;
+ if( st && y == STATLINE )
+ for( ; x; *d++ = 0, s++, x-- );
+ for( ; x; *d++ = *s++, x-- );
+ }
+ }
+ else
+ {
+ /* no window pointer */
+ *d++ = 80; /* scrdim x */
+ *d++ = 1; /* scrdim y */
+ *d++ = 0; /* csrpos x */
+ *d++ = 0; /* csrpos y */
+ strcpy( d, "*** screen: no window pointer ***" );
+ memset( d+strlen(d), ' ', 80);
+ }
+}
+
+#endif /* IPC_EXPORT_IMAGE */
+
#ifdef ZMODEM