anchor.diff:      return !squeeze;
     });
   }
  +
  +// See http://docstore.mik.ua/orelly/unix3/upt/ch12_04.htm
  +// Note: This is likely buggy and slow.
  +String showNonprintables(String line) {
  +  String convertNonprintable(int char) {
  +    isControl(int char) => char <= 037 || char == 0177;
  +    var buffer = new StringBuffer();
  +    if (char >= 0200) {
  +      char &= 0177;
  +      buffer.write('M-');
  +    }
  +    if (isControl(char)) {
  +      buffer.write('^');
  +      if (char == 0177) {
  +        buffer.write('?');
  +      } else {
  +        buffer.writeCharCode(char + '@'.codeUnitAt(0));
  +      }
  +    } else {
  +      buffer.writeCharCode(char);
  +    }
  +    return buffer.toString();
  +  }
  +
  +  var re = new RegExp(r'[\x00-\x08\x0A-\x1F\x7F]|[^\x00-\x7F]');
  +  return line.replaceAllMapped(re, (match) => convertNonprintable(match.input.codeUnitAt(0)));
  +}
  
positive.code:       });
      }
  
      if(showEnds) lines = lines.map((line) => '$line\$');
  
      if(showTabs) lines = lines.map((str) => str.replaceAll('\t', '^I'));
  
      // TODO: Show non-printing characters.
      // See http://docstore.mik.ua/orelly/unix3/upt/ch12_04.htm
      if(showNonprinting) {}
  
      return lines.forEach(print);
    });
  }
  
negative.code: import 'dart:async';
  import 'dart:convert';
  
  import 'package:quiver/async.dart';
  import 'package:quiver/iterables.dart';
  import 'package:quiver/strings.dart';
  import 'package:unscripted/unscripted.dart';
  
  main(arguments) => sketch(cat).execute(arguments);
  
  // TODO: Add tests, see https://gist.github.com/sandal/1293709
  /// A dart implementation of the unix utility [cat][cat_wiki].
  /// [cat_wiki]: http://en.wikipedia.org/wiki/Cat_(Unix)
  @Command(help: 'Concatenate FILE(s), or standard input, to standard output.')
  @ArgExample('f - g', help: "Output f's contents, then standard input, then g's contents.")
  @ArgExample('', help: 'Copy standard input to standard output.')
  cat(
      List<Input> files,
      {@Flag(abbr: 'n', help: 'number all output lines')
  