A replacement for the original version. This does not avoid comments and strings, and uses different algorithms. The hashlib package is a prerequisite, and supplies the storage.
This is a complete rewrite, in a different language and thus begins life as version 2.0 of id2id.
Id2id reads a list of idpairs in the form of lines holding oldname newname and then applies all those changes to the file specified. It does this with a single pass through the file, and thus is almost as quick as simply copying the file.
Unlike a normal text replacement in an editor, id2id only operates on complete identifiers. Thus it cannot be used to replace prefixes or suffixes. An identifier is anything that begins with '_' or any letter, and continues for all following characters until a non '_', letter, or digit.
The primary purpose is to make compatible changes across a complete set of files. The process of controlling the files modified is left for a supervisory script.
Another use is when learning another program. Identifiers can be changed to something more understandable. As more and more of the program is understood, the idpairs file can be enhanced, always maintaining the original source unchanged
This can also be applied to the output of a disassembler.
The -r switch reverses the meanings of the columns of the idpairs file, and thus can often be used to recreate the original file. BEWARE - this is not always possible. In particular it is not possible if a 'newname' already existed in the original file.
Copyright (C) 2004 by C.B. Falconer
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
At the time of writing, this package was available at:
http://cbfalconer.home.att.net/download/id2id-20.zip