mirror of
https://github.com/tmux/tmux.git
synced 2024-12-12 17:38:48 +00:00
Use ACS for line drawing characters.
This commit is contained in:
parent
9164dd63e7
commit
fb543c7707
6
CHANGES
6
CHANGES
@ -1,3 +1,7 @@
|
||||
04 May 2009
|
||||
|
||||
* Use ACS line drawing characters for pane separator lines.
|
||||
|
||||
30 April 2009
|
||||
|
||||
* Support command sequences without a space before the semicolon, for example
|
||||
@ -1239,7 +1243,7 @@
|
||||
(including mutt, emacs). No status bar yet and no key remapping or other
|
||||
customisation.
|
||||
|
||||
$Id: CHANGES,v 1.282 2009-04-30 21:53:32 nicm Exp $
|
||||
$Id: CHANGES,v 1.283 2009-05-04 13:20:01 nicm Exp $
|
||||
|
||||
LocalWords: showw utf UTF fulvio ciriaco joshe OSC APC gettime abc DEF OA clr
|
||||
LocalWords: rivo nurges lscm Erdely eol smysession mysession ek dstname RB ms
|
||||
|
5
TODO
5
TODO
@ -63,6 +63,8 @@
|
||||
- refer to windows by name etc (duplicates? fnmatch?)
|
||||
- the output code (tty.c) could do with optimisation depending on term
|
||||
capibilities
|
||||
- would be nice to be able to use "--" to mark start of command w/ neww etc
|
||||
to avoid quoting
|
||||
|
||||
(hopefully) for 0.9, in no particular order:
|
||||
- a command to display the status line briefly when it is turned off
|
||||
@ -88,3 +90,6 @@
|
||||
hardcoded 81 for left-vertical is nasty
|
||||
- test bug sshing from freebsd console (tom iirc?)
|
||||
- rotate-window has redraw bugs... :-/
|
||||
- binding a neww ... while read i or for i in to a key doesn't work...
|
||||
something to do with pty/tty handling?
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $Id: screen-redraw.c,v 1.34 2009-04-02 21:08:13 nicm Exp $ */
|
||||
/* $Id: screen-redraw.c,v 1.35 2009-05-04 13:20:02 nicm Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||
@ -69,21 +69,39 @@ screen_redraw_screen(struct client *c)
|
||||
struct window_pane *wp;
|
||||
struct screen *s;
|
||||
u_int i, j, sx, sy;
|
||||
int status;
|
||||
int status, has_acs;
|
||||
u_char choriz, cvert, cbackg;
|
||||
|
||||
/* Get status line, er, status. */
|
||||
status = options_get_number(&c->session->options, "status");
|
||||
|
||||
/* Work out ACS characters. */
|
||||
if (tty_term_has(tty->term, TTYC_ACSC)) {
|
||||
has_acs = 1;
|
||||
choriz = tty_get_acs(tty, 'q');
|
||||
cvert = tty_get_acs(tty, 'x');
|
||||
cbackg = tty_get_acs(tty, '~');
|
||||
} else {
|
||||
has_acs = 0;
|
||||
choriz = '-';
|
||||
cvert = '|';
|
||||
cbackg = '.';
|
||||
}
|
||||
|
||||
/* Clear the screen. */
|
||||
tty_reset(tty);
|
||||
if (has_acs)
|
||||
tty_putcode(tty, TTYC_SMACS);
|
||||
for (j = 0; j < tty->sy - status; j++) {
|
||||
for (i = 0; i < tty->sx; i++) {
|
||||
if (!screen_redraw_check_cell(c, i, j)) {
|
||||
tty_cursor(tty, i, j, 0, 0);
|
||||
tty_putc(tty, '.');
|
||||
tty_putc(tty, cbackg);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (has_acs)
|
||||
tty_putcode(tty, TTYC_RMACS);
|
||||
|
||||
/* Draw the panes. */
|
||||
TAILQ_FOREACH(wp, &w->panes, entry) {
|
||||
@ -97,16 +115,18 @@ screen_redraw_screen(struct client *c)
|
||||
sy = wp->sy;
|
||||
|
||||
/* Draw left and right borders. */
|
||||
if (has_acs)
|
||||
tty_putcode(tty, TTYC_SMACS);
|
||||
if (wp->xoff > 0) {
|
||||
for (i = wp->yoff; i < wp->yoff + sy; i++) {
|
||||
tty_cursor(tty, wp->xoff - 1, i, 0, 0);
|
||||
tty_putc(tty, '|');
|
||||
tty_putc(tty, cvert);
|
||||
}
|
||||
}
|
||||
if (wp->xoff + sx < tty->sx) {
|
||||
for (i = wp->yoff; i < wp->yoff + sy; i++) {
|
||||
tty_cursor(tty, wp->xoff + sx, i, 0, 0);
|
||||
tty_putc(&c->tty, '|');
|
||||
tty_putc(&c->tty, cvert);
|
||||
}
|
||||
}
|
||||
|
||||
@ -114,13 +134,15 @@ screen_redraw_screen(struct client *c)
|
||||
if (wp->yoff > 0) {
|
||||
tty_cursor(tty, wp->xoff, wp->yoff - 1, 0, 0);
|
||||
for (i = 0; i < sx; i++)
|
||||
tty_putc(tty, '-');
|
||||
tty_putc(tty, choriz);
|
||||
}
|
||||
if (wp->yoff + sy < tty->sy - status) {
|
||||
tty_cursor(tty, wp->xoff, wp->yoff + sy, 0, 0);
|
||||
for (i = 0; i < sx; i++)
|
||||
tty_putc(tty, '-');
|
||||
tty_putc(tty, choriz);
|
||||
}
|
||||
if (has_acs)
|
||||
tty_putcode(tty, TTYC_RMACS);
|
||||
|
||||
/* Draw the pane. */
|
||||
screen_redraw_pane(c, wp);
|
||||
|
3
tmux.h
3
tmux.h
@ -1,4 +1,4 @@
|
||||
/* $Id: tmux.h,v 1.310 2009-05-02 08:34:39 nicm Exp $ */
|
||||
/* $Id: tmux.h,v 1.311 2009-05-04 13:20:02 nicm Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||
@ -1082,6 +1082,7 @@ void options_set_number(struct options *, const char *, long long);
|
||||
long long options_get_number(struct options *, const char *);
|
||||
|
||||
/* tty.c */
|
||||
u_char tty_get_acs(struct tty *, u_char);
|
||||
void tty_emulate_repeat(struct tty *,
|
||||
enum tty_code_code, enum tty_code_code, u_int);
|
||||
void tty_reset(struct tty *);
|
||||
|
3
tty.c
3
tty.c
@ -1,4 +1,4 @@
|
||||
/* $Id: tty.c,v 1.94 2009-04-29 17:50:52 nicm Exp $ */
|
||||
/* $Id: tty.c,v 1.95 2009-05-04 13:20:02 nicm Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||
@ -28,7 +28,6 @@
|
||||
#include "tmux.h"
|
||||
|
||||
void tty_fill_acs(struct tty *);
|
||||
u_char tty_get_acs(struct tty *, u_char);
|
||||
|
||||
void tty_raw(struct tty *, const char *);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user