hterm: fix parsing multiple SGR true color sequences

The SGR sequence allows multiple sequences to be packed together.
e.g. \e[33;1m\e8m\e4m is the same as \e[33;1;8;4m.  Most of these
sub-commands don't take arguments, but true colors take 4.  But we
had an off-by-one count causing us to skip over the next one.

Change-Id: Id83b1b87d5638ab657161366ad44025d5fc25092
Reviewed-on: https://chromium-review.googlesource.com/765111
Reviewed-by: Brandon Gilmore <varz@google.com>
Tested-by: Mike Frysinger <vapier@chromium.org>
2 files changed
tree: 65be875ab171a940a443fbd666fd40d642cf077c
  1. .gitignore
  2. HACK.md
  3. LICENSE
  4. README.md
  5. hterm/
  6. libdot/
  7. nassh/
  8. package.json
  9. saltpig/
  10. ssh_client/
  11. wam/
  12. wash/
README.md

Hello

This repository contains the libdot JavaScript library and some web applications that make use of it.

The official copy of this repository is hosted at https://chromium.googlesource.com/apps/libapps.

There is also a mirror on github at https://github.com/libapps/libapps-mirror. Keep in mind that this mirror may occasionally be behind the official repository.

All changes must go through the Gerrit code review server on https://chromium-review.googlesource.com. Github pull requests cannot be accepted. Please see the HACK.md document in this directory for the details.

Top level directories

  • libdot/ is a small set of JS libraries initially developed as part of hterm, now available as shared code. It provides a base layer for web applications. The code is intended to work in any modern browser, in either a plain web page or a “privileged” environment such as a Chrome platform application or Firefox extension. In practice, it's only been put to use in Chrome platform applications so far.

  • hterm/ is a JS library that provides a terminal emulator. It is reasonably fast, reasonably correct, and reasonably portable across browsers.

  • nassh/ is the Secure Shell Chrome App (currently a “v1.5” app, soon to become a “v2” or platform app) that combines hterm with a NaCl build of OpenSSH to provide a PuTTY-like app for Chrome users.

  • ssh_client/ is the NaCl port of OpenSSH. It is used by nassh to create the Secure Shell App.

  • wash/ is a library for cross-origin virtual filesystems, similar to the Plan 9 filesystem. This directory also contains a simple bash-like shell environment for exploring these filesystems. The code in this directory is a work-in-progress.