Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F150767037
D24815.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D24815.diff
View Options
Index: head/sys/dev/vt/vt.h
===================================================================
--- head/sys/dev/vt/vt.h
+++ head/sys/dev/vt/vt.h
@@ -231,6 +231,7 @@
void vtbuf_dirty(struct vt_buf *vb, const term_rect_t *area);
void vtbuf_undirty(struct vt_buf *, term_rect_t *);
void vtbuf_sethistory_size(struct vt_buf *, unsigned int);
+void vtbuf_clearhistory(struct vt_buf *);
int vtbuf_iscursor(const struct vt_buf *vb, int row, int col);
void vtbuf_cursor_visibility(struct vt_buf *, int);
#ifndef SC_NO_CUTPASTE
Index: head/sys/dev/vt/vt_buf.c
===================================================================
--- head/sys/dev/vt/vt_buf.c
+++ head/sys/dev/vt/vt_buf.c
@@ -416,13 +416,26 @@
vb->vb_rows[r] = &vb->vb_buffer[r * vb->vb_scr_size.tp_col];
}
-void
-vtbuf_init_early(struct vt_buf *vb)
+static void
+vtbuf_do_clearhistory(struct vt_buf *vb)
{
term_rect_t rect;
const teken_attr_t *a;
- term_char_t c;
+ term_char_t ch;
+ a = teken_get_curattr(&vb->vb_terminal->tm_emulator);
+ ch = TCOLOR_FG(a->ta_fgcolor) | TCOLOR_BG(a->ta_bgcolor);
+
+ rect.tr_begin.tp_row = rect.tr_begin.tp_col = 0;
+ rect.tr_end.tp_col = vb->vb_scr_size.tp_col;
+ rect.tr_end.tp_row = vb->vb_history_size;
+
+ vtbuf_do_fill(vb, &rect, VTBUF_SPACE_CHAR(ch));
+}
+
+void
+vtbuf_init_early(struct vt_buf *vb)
+{
vb->vb_flags |= VBF_CURSOR;
vb->vb_roffset = 0;
vb->vb_curroffset = 0;
@@ -432,14 +445,7 @@
vb->vb_mark_end.tp_col = 0;
vtbuf_init_rows(vb);
- rect.tr_begin.tp_row = rect.tr_begin.tp_col = 0;
- rect.tr_end.tp_col = vb->vb_scr_size.tp_col;
- rect.tr_end.tp_row = vb->vb_history_size;
-
- a = teken_get_curattr(&vb->vb_terminal->tm_emulator);
- c = TCOLOR_FG((term_char_t)a->ta_fgcolor) |
- TCOLOR_BG((term_char_t)a->ta_bgcolor);
- vtbuf_do_fill(vb, &rect, VTBUF_SPACE_CHAR(c));
+ vtbuf_do_clearhistory(vb);
vtbuf_make_undirty(vb);
if ((vb->vb_flags & VBF_MTX_INIT) == 0) {
mtx_init(&vb->vb_lock, "vtbuf", NULL, MTX_SPIN);
@@ -464,6 +470,14 @@
}
vtbuf_init_early(vb);
+}
+
+void
+vtbuf_clearhistory(struct vt_buf *vb)
+{
+ VTBUF_LOCK(vb);
+ vtbuf_do_clearhistory(vb);
+ VTBUF_UNLOCK(vb);
}
void
Index: head/sys/dev/vt/vt_core.c
===================================================================
--- head/sys/dev/vt/vt_core.c
+++ head/sys/dev/vt/vt_core.c
@@ -2329,7 +2329,10 @@
if (*(int *)data != vd->vd_curwindow->vw_buf.vb_history_size)
vtbuf_sethistory_size(&vd->vd_curwindow->vw_buf,
*(int *)data);
- return 0;
+ return (0);
+ case CONS_CLRHIST:
+ vtbuf_clearhistory(&vd->vd_curwindow->vw_buf);
+ return (0);
case CONS_GET:
/* XXX */
*(int *)data = M_CG640x480;
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Apr 4, 10:19 PM (14 h, 14 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30848123
Default Alt Text
D24815.diff (2 KB)
Attached To
Mode
D24815: vt(4): Add support for `vidcontrol -C'
Attached
Detach File
Event Timeline
Log In to Comment