mirror of
https://github.com/nuintun/command-manager.git
synced 2025-06-07 03:14:07 +08:00
46 lines
989 B
JavaScript
46 lines
989 B
JavaScript
/**
|
|
* Created by nuintun on 2015/11/24.
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
var states = require('../states');
|
|
|
|
module.exports = function (Terminal){
|
|
// ESC D Index (IND is 0x84).
|
|
Terminal.prototype.index = function (){
|
|
this.y++;
|
|
|
|
if (this.y > this.scrollBottom) {
|
|
this.y--;
|
|
this.scroll();
|
|
}
|
|
|
|
this.state = states.normal;
|
|
};
|
|
|
|
// ESC M Reverse Index (RI is 0x8d).
|
|
Terminal.prototype.reverseIndex = function (){
|
|
var j;
|
|
|
|
this.y--;
|
|
|
|
if (this.y < this.scrollTop) {
|
|
this.y++;
|
|
|
|
// possibly move the code below to term.reverseScroll();
|
|
// test: echo -ne '\e[1;1H\e[44m\eM\e[0m'
|
|
// blankLine(true) is xterm/linux behavior
|
|
this.lines.splice(this.y + this.ybase, 0, this.blankLine(true));
|
|
|
|
j = this.rows - 1 - this.scrollBottom;
|
|
|
|
this.lines.splice(this.rows - 1 + this.ybase - j + 1, 1);
|
|
this.updateRange(this.scrollTop);
|
|
this.updateRange(this.scrollBottom);
|
|
}
|
|
|
|
this.state = states.normal;
|
|
};
|
|
};
|