[OBSOLETE, we don't recommend anymore to write TCL Macros. Instead, use the Python SDK located in the PythonLib folder] Macros start-up : ----------------- * The startup.tcl file get executed before *each* command of TCL. * In order to be recognized by the application, the macro file has to be located in the "Macros" folder (or any of its sub-folder). * A header tells the application in which menu to hook-up the macro : #!CVSGUI1.0 [--admin|--selection] --name "The name which appears in the menu" Built-in TCL commands available anywhere : ------------------------------------------ * cvs : the cvs command. * cvsout ?arg arg...? output a set of strings to the console window. * cvserr ?arg arg...? output a set of strings to the console window. * cvsentries pathName funcName load the CVS/Entries informations from pathName and set the funcName with a "cvsbrowser" like syntax (see below). * cvsexitonerror true|false Enable or disable automatic termination of a macro if cvs command returns an error code (ie. non zero value). true = Exit automatically in error (default behaviour) false = Do not exit automatically. cvslasterrorcode command can be used to read the error code, so macro can handle the error. * cvslasterrorcode ?arg? Return the error code of last CVS command if called without argument. Set a value of cvslasterrorcode variable if called with integer argument. cvsexitonerror false cvs -q update $fileInfo(name) set errcode [cvslasterrorcode] if {[string compare $errcode "0"] == 0} { cvsout "Successfully updated\n" } else { cvsout "Failed to update\n" } * cvsfilemodtime ?arg? Return a string containing the UTC value for the modification time for the disk file ?arg?. Built-in TCL commands only from the Selections menu : ----------------------------------------------------- * cvsbrowser : - cvsbrowser get : returns a list of the selected items in the browser. A simple return is : {"C:/myproject/foo.c" "C:/myproject/foo.rc"} - cvsbrowser info fileName arrayName : set the array "arrayName" with a set of informations about "fileName". If the browser has such an information, the array "arrayName" contains : + $arrayName(name) : the file name + $arrayName(kind) : [file|folder] + $arrayName(path) : the file path + $arrayName(missing) : [0|1] + $arrayName(unknown) : [0|1] + $arrayName(ignored) : [0|1] + $arrayName(locked) : [0|1] + $arrayName(modified) : [0|1] + $arrayName(status) : A string like "Mod. file" or "Unknown folder" + if the element is a file (if $arrayName(kind) is "file") + $arrayName(revision) : the file revision (i.e. 1.1, 1.2.3.4...) + $arrayName(timestamp) : the time stamp on the server + $arrayName(option) : the substitution option (i.e. -kb) + $arrayName(tag) : the tag name (if any) + $arrayName(conflict) : the conflict desc. (if any)