File kterm-6.2.0-rightbar.patch of Package kterm
diff -c kterm-6.2.0.orig/charproc.c kterm-6.2.0/charproc.c
*** kterm-6.2.0.orig/charproc.c Fri Jul 12 14:01:36 1996
--- kterm-6.2.0/charproc.c Tue Sep 4 05:38:36 2001
***************
*** 170,175 ****
--- 170,177 ----
#define XtNautoWrap "autoWrap"
#define XtNsaveLines "saveLines"
#define XtNscrollBar "scrollBar"
+ /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
+ #define XtNrightScrollBar "rightScrollBar"
#define XtNscrollTtyOutput "scrollTtyOutput"
#define XtNscrollKey "scrollKey"
#define XtNscrollLines "scrollLines"
***************
*** 230,235 ****
--- 232,239 ----
#define XtCAutoWrap "AutoWrap"
#define XtCSaveLines "SaveLines"
#define XtCScrollBar "ScrollBar"
+ /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
+ #define XtCRightScrollBar "RightScrollBar"
#define XtCScrollLines "ScrollLines"
#define XtCScrollPos "ScrollPos"
#define XtCScrollCond "ScrollCond"
***************
*** 660,665 ****
--- 664,673 ----
{XtNscrollBar, XtCScrollBar, XtRBoolean, sizeof(Boolean),
XtOffsetOf(XtermWidgetRec, misc.scrollbar),
XtRBoolean, (XtPointer) &defaultFALSE},
+ /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
+ {XtNrightScrollBar, XtCRightScrollBar, XtRBoolean, sizeof(Boolean),
+ XtOffsetOf(XtermWidgetRec, misc.useRight),
+ XtRBoolean, (XtPointer) &defaultFALSE},
{XtNscrollTtyOutput,XtCScrollCond, XtRBoolean, sizeof(Boolean),
XtOffsetOf(XtermWidgetRec, screen.scrollttyoutput),
XtRBoolean, (XtPointer) &defaultTRUE},
***************
*** 2540,2546 ****
(Widget) termw,
(Dimension) FontWidth(screen) * j
+ 2*screen->border
! + screen->scrollbar,
(Dimension) FontHeight(screen)
* (screen->max_row + 1)
#ifdef STATUSLINE
--- 2548,2556 ----
(Widget) termw,
(Dimension) FontWidth(screen) * j
+ 2*screen->border
! /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
! + screen->scrollbar
! + screen->useRight,
(Dimension) FontHeight(screen)
* (screen->max_row + 1)
#ifdef STATUSLINE
***************
*** 2781,2787 ****
(Widget) termw,
(Dimension) FontWidth(screen) * j
+ 2*screen->border
! + screen->scrollbar,
(Dimension) FontHeight(screen)
* (screen->max_row + 1)
+ 2*screen->border,
--- 2791,2799 ----
(Widget) termw,
(Dimension) FontWidth(screen) * j
+ 2*screen->border
! /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
! + screen->scrollbar
! + screen->useRight,
(Dimension) FontHeight(screen)
* (screen->max_row + 1)
+ 2*screen->border,
***************
*** 3624,3629 ****
--- 3636,3643 ----
if (term->misc.scrollbar) {
screen->scrollbar = 0;
+ /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
+ screen->useRight = 0;
ScrollBarOn (term, FALSE, TRUE);
}
CursorSave (term, &screen->sc);
***************
*** 4147,4153 ****
XtMakeResizeRequest(
(Widget) term,
(Dimension) 80*FontWidth(screen)
! + 2 * screen->border + screen->scrollbar,
#ifdef STATUSLINE
(Dimension) screen->statusheight +
#endif /* STATUSLINE */
--- 4161,4168 ----
XtMakeResizeRequest(
(Widget) term,
(Dimension) 80*FontWidth(screen)
! /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
! + 2 * screen->border + screen->scrollbar + screen->useRight,
#ifdef STATUSLINE
(Dimension) screen->statusheight +
#endif /* STATUSLINE */
***************
*** 4206,4214 ****
return;
screen->statusheight = FontHeight(screen) + 2;
DoResizeScreen(term);
! if (screen->scrollWidget)
ResizeScrollBar(screen->scrollWidget, -1, -1,
! Height(screen) + screen->border * 2 + screen->statusheight);
}
HideStatus()
--- 4221,4238 ----
return;
screen->statusheight = FontHeight(screen) + 2;
DoResizeScreen(term);
! /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
! if (screen->scrollWidget){
! if( term->misc.useRight == True ){
! ResizeScrollBar (screen->scrollWidget,
! (screen->max_col+1)*FontWidth(screen)+(screen->border)*2, -1,
! Height(screen) + screen->border * 2 + screen->statusheight);
! }
! else{
ResizeScrollBar(screen->scrollWidget, -1, -1,
! Height(screen) + screen->border * 2 + screen->statusheight);
! }
! }
}
HideStatus()
***************
*** 4232,4240 ****
bzero(screen->buf[i + 1], j);
# endif /* !KTERM */
DoResizeScreen(term);
! if (screen->scrollWidget)
! ResizeScrollBar(screen->scrollWidget, -1, -1,
! Height(screen) + screen->border * 2);
}
EraseStatus()
--- 4256,4273 ----
bzero(screen->buf[i + 1], j);
# endif /* !KTERM */
DoResizeScreen(term);
! /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
! if (screen->scrollWidget){
! if( term->misc.useRight == True ){
! ResizeScrollBar (screen->scrollWidget,
! (screen->max_col+1)*FontWidth(screen)+(screen->border)*2, -1,
! Height(screen) + screen->border * 2);
! }
! else{
! ResizeScrollBar(screen->scrollWidget, -1, -1,
! Height(screen) + screen->border * 2);
! }
! }
}
EraseStatus()
***************
*** 5085,5096 ****
XClearWindow (screen->display, VWindow(screen));
}
DoResizeScreen (term); /* set to the new natural size */
! if (screen->scrollWidget)
! ResizeScrollBar (screen->scrollWidget, -1, -1,
#ifdef STATUSLINE
! screen->statusheight +
#endif /* STATUSLINE */
! Height(screen) + screen->border * 2);
Redraw ();
}
set_vt_box (screen);
--- 5118,5141 ----
XClearWindow (screen->display, VWindow(screen));
}
DoResizeScreen (term); /* set to the new natural size */
! /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
! if (screen->scrollWidget){
! if( term->misc.useRight == True ){
! ResizeScrollBar (screen->scrollWidget,
! (screen->max_col+1)*FontWidth(screen)+(screen->border)*2, -1,
! #ifdef STATUSLINE
! screen->statusheight +
! #endif /* STATUSLINE */
! Height(screen) + screen->border * 2);
! }
! else{
! ResizeScrollBar (screen->scrollWidget, -1, -1,
#ifdef STATUSLINE
! screen->statusheight +
#endif /* STATUSLINE */
! Height(screen) + screen->border * 2);
! }
! }
Redraw ();
}
set_vt_box (screen);
Only in kterm-6.2.0: charproc.c.orig
diff -c kterm-6.2.0.orig/main.c kterm-6.2.0/main.c
*** kterm-6.2.0.orig/main.c Fri Jul 12 14:01:38 1996
--- kterm-6.2.0/main.c Tue Sep 4 05:28:54 2001
***************
*** 745,750 ****
--- 745,753 ----
{"+s", "*multiScroll", XrmoptionNoArg, (caddr_t) "off"},
{"-sb", "*scrollBar", XrmoptionNoArg, (caddr_t) "on"},
{"+sb", "*scrollBar", XrmoptionNoArg, (caddr_t) "off"},
+ /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
+ {"-leftbar", "*rightScrollBar", XrmoptionNoArg, (caddr_t) "off"},
+ {"-rightbar", "*rightScrollBar", XrmoptionNoArg, (caddr_t) "on"},
{"-sf", "*sunFunctionKeys", XrmoptionNoArg, (caddr_t) "on"},
{"+sf", "*sunFunctionKeys", XrmoptionNoArg, (caddr_t) "off"},
{"-si", "*scrollTtyOutput", XrmoptionNoArg, (caddr_t) "off"},
***************
*** 859,864 ****
--- 862,870 ----
{ "-/+rw", "turn on/off reverse wraparound" },
{ "-/+s", "turn on/off multiscroll" },
{ "-/+sb", "turn on/off scrollbar" },
+ /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
+ { "-rightbar", "force scrollbar right (default left)" },
+ { "-leftbar", "force scrollbar left" },
{ "-/+sf", "turn on/off Sun Function Key escape codes" },
{ "-/+si", "turn on/off scroll-on-tty-output inhibit" },
{ "-/+sk", "turn on/off scroll-on-keypress" },
diff -c kterm-6.2.0.orig/menu.c kterm-6.2.0/menu.c
*** kterm-6.2.0.orig/menu.c Sat Jun 29 12:56:43 1996
--- kterm-6.2.0/menu.c Tue Sep 4 05:28:54 2001
***************
*** 566,573 ****
caddr_t closure, data;
{
register TScreen *screen = &term->screen;
!
! if (screen->scrollbar) {
ScrollBarOff (screen);
} else {
ScrollBarOn (term, FALSE, FALSE);
--- 566,573 ----
caddr_t closure, data;
{
register TScreen *screen = &term->screen;
! /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
! if ( screen->scrollbar!=0 || screen->useRight!=0 ) {
ScrollBarOff (screen);
} else {
ScrollBarOn (term, FALSE, FALSE);
***************
*** 1184,1190 ****
String *params;
Cardinal *param_count;
{
! handle_toggle (do_scrollbar, (int) term->screen.scrollbar,
params, *param_count, w, NULL, NULL);
}
--- 1184,1191 ----
String *params;
Cardinal *param_count;
{
! /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
! handle_toggle (do_scrollbar, (int)( term->screen.scrollbar || term->screen.useRight ),
params, *param_count, w, NULL, NULL);
}
diff -c kterm-6.2.0.orig/menu.h kterm-6.2.0/menu.h
*** kterm-6.2.0.orig/menu.h Tue Jul 2 14:01:52 1996
--- kterm-6.2.0/menu.h Tue Sep 4 05:28:54 2001
***************
*** 239,248 ****
term->screen.logging)
#endif
#define update_scrollbar() \
update_menu_item (term->screen.vtMenu, \
vtMenuEntries[vtMenu_scrollbar].widget, \
! term->screen.scrollbar)
#define update_jumpscroll() \
update_menu_item (term->screen.vtMenu, \
--- 239,249 ----
term->screen.logging)
#endif
+ /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
#define update_scrollbar() \
update_menu_item (term->screen.vtMenu, \
vtMenuEntries[vtMenu_scrollbar].widget, \
! term->screen.scrollbar || term->screen.useRight )
#define update_jumpscroll() \
update_menu_item (term->screen.vtMenu, \
diff -c kterm-6.2.0.orig/misc.c kterm-6.2.0/misc.c
*** kterm-6.2.0.orig/misc.c Fri Jul 12 14:01:43 1996
--- kterm-6.2.0/misc.c Tue Sep 4 05:28:54 2001
***************
*** 517,523 ****
event.width = term->core.width;
event.height = term->core.height;
(*term->core.widget_class->core_class.expose)((Widget)term, (XEvent *)&event, NULL);
! if(screen->scrollbar)
(*screen->scrollWidget->core.widget_class->core_class.expose)(screen->scrollWidget, (XEvent *)&event, NULL);
}
--- 517,524 ----
event.width = term->core.width;
event.height = term->core.height;
(*term->core.widget_class->core_class.expose)((Widget)term, (XEvent *)&event, NULL);
! /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
! if( screen->scrollbar!=0 || screen->useRight!=0 )
(*screen->scrollWidget->core.widget_class->core_class.expose)(screen->scrollWidget, (XEvent *)&event, NULL);
}
diff -c kterm-6.2.0.orig/ptyx.h kterm-6.2.0/ptyx.h
*** kterm-6.2.0.orig/ptyx.h Tue Jul 2 14:01:53 1996
--- kterm-6.2.0/ptyx.h Tue Sep 4 05:28:54 2001
***************
*** 362,367 ****
--- 362,369 ----
Widget scrollWidget; /* pointer to scrollbar struct */
int scrollbar; /* if > 0, width of scrollbar, and
scrollbar is showing */
+ /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
+ int useRight;
int topline; /* line number of top, <= 0 */
int savedlines; /* number of lines that've been saved */
int savelines; /* number of lines off top to save */
***************
*** 546,551 ****
--- 548,555 ----
Boolean tekInhibit;
#endif /* !KTERM_NOTEK */
Boolean scrollbar;
+ /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
+ Boolean useRight;
Boolean titeInhibit;
#ifndef KTERM_NOTEK
Boolean tekSmall; /* start tek window in small size */
diff -c kterm-6.2.0.orig/screen.c kterm-6.2.0/screen.c
*** kterm-6.2.0.orig/screen.c Sun Jun 23 17:00:26 1996
--- kterm-6.2.0/screen.c Tue Sep 4 05:40:21 2001
***************
*** 869,875 ****
rows = (height + FontHeight(screen) / 2 - border) /
#endif /* !STATUSLINE */
FontHeight(screen);
! cols = (width + FontWidth(screen) / 2 - border - screen->scrollbar) /
FontWidth(screen);
if (rows < 1) rows = 1;
if (cols < 1) cols = 1;
--- 869,877 ----
rows = (height + FontHeight(screen) / 2 - border) /
#endif /* !STATUSLINE */
FontHeight(screen);
! /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
! cols = (width + FontWidth(screen) / 2 - border
! - screen->scrollbar - screen->useRight ) /
FontWidth(screen);
if (rows < 1) rows = 1;
if (cols < 1) cols = 1;
***************
*** 964,977 ****
#else /* !STATUSLINE */
screen->fullVwin.height = height - border;
#endif /* !STATUSLINE */
! screen->fullVwin.width = width - border - screen->scrollbar;
} else if(FullHeight(screen) == height && FullWidth(screen) == width)
return(0); /* nothing has changed at all */
! if(screen->scrollWidget)
ResizeScrollBar(screen->scrollWidget, -1, -1, height);
!
screen->fullVwin.fullheight = height;
screen->fullVwin.fullwidth = width;
ResizeSelection (screen, rows, cols);
--- 966,988 ----
#else /* !STATUSLINE */
screen->fullVwin.height = height - border;
#endif /* !STATUSLINE */
! /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
! screen->fullVwin.width = width - border - screen->scrollbar - screen->useRight;
} else if(FullHeight(screen) == height && FullWidth(screen) == width)
return(0); /* nothing has changed at all */
! /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
! if(screen->scrollWidget){
! if( term->misc.useRight == True ){
! ResizeScrollBar (screen->scrollWidget,
! (screen->max_col+1)*FontWidth(screen)+3+1, -1,
! height) ;
! }
! else{
ResizeScrollBar(screen->scrollWidget, -1, -1, height);
! }
! }
screen->fullVwin.fullheight = height;
screen->fullVwin.fullwidth = width;
ResizeSelection (screen, rows, cols);
Only in kterm-6.2.0: screen.c.orig
diff -c kterm-6.2.0.orig/scrollbar.c kterm-6.2.0/scrollbar.c
*** kterm-6.2.0.orig/scrollbar.c Fri Jul 12 14:01:39 1996
--- kterm-6.2.0/scrollbar.c Tue Sep 4 05:28:54 2001
***************
*** 174,180 ****
register XtermWidget xw;
{
int border = 2 * xw->screen.border;
! ResizeScreen (xw, border + xw->screen.scrollbar, border);
}
--- 174,188 ----
register XtermWidget xw;
{
int border = 2 * xw->screen.border;
! int scrb = xw->screen.scrollWidget->core.width +
! xw->screen.scrollWidget->core.border_width ;
! /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
! if( xw->misc.useRight == True ){
! ResizeScreen (xw, border + xw->screen.useRight, border);
! }
! else{
! ResizeScreen (xw, border + xw->screen.scrollbar, border);
! }
}
***************
*** 328,333 ****
--- 336,344 ----
if(screen->scrollbar)
return;
+ /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
+ if(screen->useRight)
+ return;
if (init) { /* then create it only */
if (screen->scrollWidget) return;
***************
*** 385,399 ****
#endif /* !KTERM */
}
! ResizeScrollBar (screen->scrollWidget, -1, -1,
#ifdef STATUSLINE
! screen->statusheight +
#endif /* STATUSLINE */
! Height (screen) + border);
! RealizeScrollBar (screen->scrollWidget, screen);
! screen->scrollbar = screen->scrollWidget->core.width +
! screen->scrollWidget->core.border_width;
ScrollBarDrawThumb(screen->scrollWidget);
DoResizeScreen (xw);
XtMapWidget(screen->scrollWidget);
--- 396,430 ----
#endif /* !KTERM */
}
! /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
! if( xw->misc.useRight == True ){
! ResizeScrollBar (screen->scrollWidget, (screen->max_col+1)*FontWidth(screen)+(screen->border)*2, -1,
#ifdef STATUSLINE
! screen->statusheight +
#endif /* STATUSLINE */
! Height (screen) + border);
! }
! else{
! ResizeScrollBar (screen->scrollWidget, -1 , -1,
! #ifdef STATUSLINE
! screen->statusheight +
! #endif /* STATUSLINE */
! Height (screen) + border);
! }
+ RealizeScrollBar (screen->scrollWidget, screen);
+ /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
+ if( xw->misc.useRight == True ){
+ screen->scrollbar = 0 ;
+ screen->useRight = screen->scrollWidget->core.width +
+ screen->scrollWidget->core.border_width;
+ }
+ else{
+ screen->scrollbar = screen->scrollWidget->core.width +
+ screen->scrollWidget->core.border_width;
+ screen->useRight = 0 ;
+ }
+
ScrollBarDrawThumb(screen->scrollWidget);
DoResizeScreen (xw);
XtMapWidget(screen->scrollWidget);
***************
*** 407,416 ****
ScrollBarOff(screen)
register TScreen *screen;
{
! if(!screen->scrollbar)
return;
XtUnmapWidget(screen->scrollWidget);
screen->scrollbar = 0;
DoResizeScreen (term);
update_scrollbar ();
if (screen->buf) {
--- 438,450 ----
ScrollBarOff(screen)
register TScreen *screen;
{
! /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
! if( screen->scrollbar==0 && screen->useRight==0 )
return;
XtUnmapWidget(screen->scrollWidget);
screen->scrollbar = 0;
+ /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
+ screen->useRight = 0;
DoResizeScreen (term);
update_scrollbar ();
if (screen->buf) {
diff -c kterm-6.2.0.orig/xim.c kterm-6.2.0/xim.c
*** kterm-6.2.0.orig/xim.c Fri Jul 12 14:01:43 1996
--- kterm-6.2.0/xim.c Tue Sep 4 05:33:33 2001
***************
*** 151,157 ****
{
rect_p->x = screen->scrollbar;
rect_p->y = 0;
! rect_p->width = FullWidth(screen) - screen->scrollbar;
rect_p->height = FullHeight(screen);
}
--- 151,158 ----
{
rect_p->x = screen->scrollbar;
rect_p->y = 0;
! /* patch for ScrollBarRight cyamauch@phyas.aichi-edu.ac.jp */
! rect_p->width = FullWidth(screen) - screen->scrollbar - screen->useRight;
rect_p->height = FullHeight(screen);
}