1 diff -dpr screen-4.0.3-h2-start/display.c screen-4.0.3-h2/display.c
2 *** screen-4.0.3-h2-start/display.c 2009-01-19 18:03:12.848855058 +0400
3 --- screen-4.0.3-h2/display.c 2009-01-19 18:15:37.111854611 +0400
4 *************** MakeDefaultCanvas()
8 cv->c_xe = D_width - 1;
10 cv->c_ye = D_height - 1 - (D_has_hstatus == HSTATUS_LASTLINE) - captionalways;
11 debug2("MakeDefaultCanvas 0,0 %d,%d\n", cv->c_xe, cv->c_ye);
16 cv->c_xe = D_width - 1;
17 ! cv->c_ys = (D_has_hstatus == HSTATUS_FIRSTLINE);
18 cv->c_ye = D_height - 1 - (D_has_hstatus == HSTATUS_LASTLINE) - captionalways;
19 debug2("MakeDefaultCanvas 0,0 %d,%d\n", cv->c_xe, cv->c_ye);
21 *************** char *str;
24 D_hstatus = *str ? 1 : 0;
25 SetRendition(&mchar_null);
27 + else if (D_has_hstatus == HSTATUS_FIRSTLINE)
29 + debug("ShowHStatus: using first line\n");
32 + str = str ? str : "";
37 + SetRendition(captionalways || D_cvlist == 0 || D_cvlist->c_next ? &mchar_null: &mchar_so);
38 + PutWinMsg(str, 0, l);
39 + if (!captionalways && D_cvlist && !D_cvlist->c_next)
40 + while (l++ < D_width)
43 + ClearArea(l, 0, l, D_width - 1, D_width - 1, 0, 0, 0);
44 + if (ox != -1 && oy != -1)
46 + D_hstatus = *str ? 1 : 0;
47 + SetRendition(&mchar_null);
49 else if (str && *str && D_has_hstatus == HSTATUS_MESSAGE)
51 debug("ShowHStatus: using message\n");
52 *************** int y, from, to, isblank;
54 if (D_status == STATUS_ON_WIN && y == STATLINE)
55 return; /* can't refresh status */
57 ! if (y == D_height - 1 && D_has_hstatus == HSTATUS_LASTLINE)
62 if (D_status == STATUS_ON_WIN && y == STATLINE)
63 return; /* can't refresh status */
65 ! if ( (y == D_height - 1 && D_has_hstatus == HSTATUS_LASTLINE)||(y == 0 && D_has_hstatus == HSTATUS_FIRSTLINE) )
69 *************** struct canvas *cv;
73 D_forecv = lay->lay_forecv;
74 DupLayoutCv(&lay->lay_canvas, &D_canvas, 0);
75 + D_canvas.c_ys = (D_has_hstatus == HSTATUS_FIRSTLINE);
76 D_canvas.c_ye = D_height - 1 - ((D_canvas.c_slperp && D_canvas.c_slperp->c_slnext) || captionalways) - (D_has_hstatus == HSTATUS_LASTLINE);
77 ResizeCanvas(&D_canvas);
78 RecreateCanvasChain();
79 Only in screen-4.0.3-h2: display.c~
80 diff -dpr screen-4.0.3-h2-start/display.h screen-4.0.3-h2/display.h
81 *** screen-4.0.3-h2-start/display.h 2009-01-19 18:03:10.705855688 +0400
82 --- screen-4.0.3-h2/display.h 2009-01-19 18:03:21.556856374 +0400
83 *************** while (0)
85 #define HSTATUS_LASTLINE 1
86 #define HSTATUS_MESSAGE 2
88 ! #define HSTATUS_ALWAYS (1<<2)
90 #define HSTATUS_LASTLINE 1
91 #define HSTATUS_MESSAGE 2
93 ! #define HSTATUS_FIRSTLINE 4
94 ! #define HSTATUS_ALWAYS (1<<3)
95 diff -dpr screen-4.0.3-h2-start/process.c screen-4.0.3-h2/process.c
96 *** screen-4.0.3-h2-start/process.c 2009-01-19 18:03:12.383855446 +0400
97 --- screen-4.0.3-h2/process.c 2009-01-19 18:27:36.839856182 +0400
98 *************** int key;
101 if (!strncmp(s, "always", 6))
103 ! if (!strcmp(s, "lastline"))
104 new_use = HSTATUS_LASTLINE;
105 else if (!strcmp(s, "ignore"))
106 new_use = HSTATUS_IGNORE;
109 if (!strncmp(s, "always", 6))
111 ! if (!strcmp(s, "firstline"))
112 ! new_use = HSTATUS_FIRSTLINE;
113 ! else if (!strcmp(s, "lastline"))
114 new_use = HSTATUS_LASTLINE;
115 else if (!strcmp(s, "ignore"))
116 new_use = HSTATUS_IGNORE;
117 *************** int key;
120 D_has_hstatus = new_use;
121 if ((new_use == HSTATUS_LASTLINE && old_use != HSTATUS_LASTLINE) || (new_use != HSTATUS_LASTLINE && old_use == HSTATUS_LASTLINE))
122 ChangeScreenSize(D_width, D_height, 1);
123 + if ((new_use == HSTATUS_FIRSTLINE && old_use != HSTATUS_FIRSTLINE) || (new_use != HSTATUS_FIRSTLINE && old_use == HSTATUS_FIRSTLINE))
124 + ChangeScreenSize(D_width, D_height, 1);
128 diff -dpr screen-4.0.3-h2-start/resize.c screen-4.0.3-h2/resize.c
129 *** screen-4.0.3-h2-start/resize.c 2009-01-19 18:03:09.851855366 +0400
130 --- screen-4.0.3-h2/resize.c 2009-01-19 18:03:21.623855067 +0400
131 *************** int change_fore;
137 + cv->c_ys = (D_has_hstatus == HSTATUS_FIRSTLINE);
138 cv->c_ye = he - 1 - ((cv->c_slperp && cv->c_slperp->c_slnext) || captionalways) - (D_has_hstatus == HSTATUS_LASTLINE);