TIP #317: EXTEND BINARY ENSEMBLE WITH BINARY ENCODINGS ======================================================== Version: $Revision: 1.5 $ Author: Pat Thoyts State: Final Type: Project Tcl-Version: 8.6 Vote: Done Created: Saturday, 03 May 2008 URL: https://tip.tcl-lang.org317.html Post-History: ------------------------------------------------------------------------- ABSTRACT ========== This TIP extends the *binary* command with implementations in C of commonly used binary encodings. In particular the /base64/ encoding is implemented but the Tcl ensemble scheme [TIP #112] can be used to provide simple extension of the implemented formats. SPECIFICATION =============== The *binary* command ensemble will be extended to include two new subcommands, *encode* and *decode*. Each subcommand will accept two arguments. The first is the name of an encoding format and the second is the data to be operated upon. *binary encode* /format ?-option value ...? data/ *binary decode* /format ?-option value ...? data/ In keeping with the nature of the *binary* command, the /data/ argument is treated as a byte array. This means that users should ensure their data is already in a suitable character encoding before applying a binary encoding. This is already a requirement for other implementations of this functionality (e.g. the tcllib and Trf packages). The initial set of binary encodings consists of *base64*, *uuencode* and *hex*. The implementation of the *encode* and *decode* subcommands will make use of the Tcl ensemble command mechanism ([TIP #112]) and will therefore be extensible via the ensemble mechanism. REFERENCE IMPLEMENTATION ========================== A patch against the Tcl HEAD (8.6) is located at COPYRIGHT =========== This document has been placed in the public domain. ------------------------------------------------------------------------- TIP AutoGenerator - written by Donal K. Fellows