File tree Expand file tree Collapse file tree 2 files changed +39
-5
lines changed Expand file tree Collapse file tree 2 files changed +39
-5
lines changed Original file line number Diff line number Diff line change 112017-11-28 (0.12.11)
22 Fix img.save(dat) to build correct indexes
3+ Fix ESCm implementation bug
4+ Implements ESC<n ESC>n back screen handlers
35
462017-11-28 (0.12.10)
57 Released 82f865d61a6eba1c017b8a58e1c892f1b7d6a0c0
Original file line number Diff line number Diff line change @@ -203,7 +203,7 @@ void AnsiWidget::print(const char *str) {
203203 case ' \003 ' : // end of text
204204 flush (true );
205205 break ;
206- case ' \xC ' :
206+ case ' \xC ' : // form feed
207207 clearScreen ();
208208 break ;
209209 case ' \033 ' : // ESC ctrl chars
@@ -218,9 +218,6 @@ void AnsiWidget::print(const char *str) {
218218 case ' \r ' : // return
219219 _back->_curX = INITXY; // erasing the line will clear any previous text
220220 break ;
221- case ' m' : // scroll to the top (M = scroll up one line)
222- _back->_scrollY = 0 ;
223- break ;
224221 default :
225222 p += _back->print (p, lineHeight) - 1 ; // allow for p++
226223 break ;
@@ -658,11 +655,46 @@ bool AnsiWidget::drawHoverLink(MAEvent &event) {
658655
659656// print() helper
660657void AnsiWidget::handleEscape (const char *&p, int lineHeight) {
661- if (*(p + 1 ) == ' [' ) {
658+ switch (*(p + 1 )) {
659+ case ' [' :
662660 p += 2 ;
663661 while (doEscape (p, lineHeight)) {
664662 // continue
665663 }
664+ break ;
665+ case ' m' :
666+ // scroll to the top (M = scroll up one line)
667+ p += 2 ;
668+ _back->_scrollY = 0 ;
669+ break ;
670+ case ' <' :
671+ // select back screen
672+ switch (*(p + 2 )) {
673+ case ' 1' :
674+ p += 3 ;
675+ selectBackScreen (USER_SCREEN1);
676+ break ;
677+ case ' 2' :
678+ p += 3 ;
679+ selectBackScreen (USER_SCREEN2);
680+ break ;
681+ }
682+ break ;
683+ case ' >' :
684+ // select front screen
685+ switch (*(p + 2 )) {
686+ case ' 1' :
687+ p += 3 ;
688+ selectFrontScreen (USER_SCREEN1);
689+ break ;
690+ case ' 2' :
691+ p += 3 ;
692+ selectFrontScreen (USER_SCREEN2);
693+ break ;
694+ }
695+ break ;
696+ default :
697+ break ;
666698 }
667699}
668700
You can’t perform that action at this time.
0 commit comments