docs: public static int getConsoleWidth() {
      if(width > 0) {
        return width;
      }
      final int default_termwidth = 78;
      try {
        final String env = System.getenv("COLUMNS");
        if(env != null) {
          int columns = ParseUtil.parseIntBase10(env);
          return width = (columns > 50 ? columns - 1 : default_termwidth);
        }
      }
      catch(SecurityException | NumberFormatException e) {
        // OK. Probably not exported.
      }
      try {
        Process p = Runtime.getRuntime().exec(new String[] { "sh", "-c", "tput cols 2> /dev/tty" });
        byte[] buf = new byte[16];
        p.getOutputStream().close(); // We do not intend to write.
        int l = p.getInputStream().read(buf);
        if(l >= 2 && l < buf.length) {
          int columns = ParseUtil.parseIntBase10(new String(buf, 0, buf[l - 1] == '\n' ? l - 1 : l));
          return width = (columns > 50 ? columns - 1 : default_termwidth);
        }
        p.destroy();
      }
      catch(IOException | SecurityException | NumberFormatException e) {
        // Ok. Probably not a unix system.
      }
      // We could use the jLine library, but that would introduce another
      // dependency. :-(
      return width = default_termwidth;
    }