Please see http://code.google.com/p/idapython/source/list for a detailed list of changes.


Changes from version 1.5.2 to 1.5.3
------------------------------------
- added set_idc_func_ex(): it is now possible to add new IDC functions using Python
- added visit_patched_bytes() (see ex_patch.py)
- added support for the multiline text input control in the Form class
- added support for the editable/readonly dropdown list control in the Form class
- added execute_sync() to register a function call into the UI message queue
- added execute_ui_requests() / check ex_uirequests.py
- added add_hotkey() / del_hotkey() to bind Python methods to hotkeys
- added register_timer()/unregister_timer(). Check ex_timer.py
- added the IDC (Arrays) netnode manipulation layer into idc.py
- added idautils.Structs() and StructMembers() generator functions
- removed the "Run Python Statment" menu item. IDA now has a unified dialog. 
  Use RunPlugin("python", 0) to invoke it manually.
- better error messages for script plugins, loaders and processor modules
- bugfix: Dbg_Hooks.dbg_run_to() was receiving wrong input
- bugfix: A few Enum related functions were not properly working in idc.py
- bugfix: GetIdaDirectory() and GetProcessName() were broken in idc.py
- bugfix: idaapi.get_item_head() / idc.ItemHead() were not working

Changes from version 1.5.1 to 1.5.2
------------------------------------
- added ui_term/ui_save/ui_saved/ui_get_ea_hint UI notifications
- added ph_get_operand_info() to retrieve operand information while debugging
- added PteDump.py script
- bugfix: read/write_dbg_memory() and dbg_get_thread_sreg_base() were not working with all debugger modules
- bugfix: idaapi.netnode.getblob() was limited to MAXSPECSIZE
- bugfix: idc.GetString()/idaapi.get_ascii_contents()/idautils.Strings() were limited to MAXSTR string length
- bugfix: idaapi.del_menu_item() was failing to delete some menu items
- bugfix: dbg_bpt was called instead of dbg_trace for a DBG_Hooks class implementation (old bug from 0.9.x)
- bugfix: Form.GetControlValue() was not working with numeric controls
- bugfix: SetBptCnd() was broken
- bugfix: idaapi.get_func_cmt() was memory leaking

Changes from version 1.5.0 to 1.5.1
------------------------------------
- Introduced the CLI '?' pseudo-command to retrieve doc strings
- Introduced the CLI '!' pseudo-command to shell execute a command
- bugfix: High 64 bit addresses were not parsed correctly in IDA64
- Added IDP/assemble notification event
- bugfix: AskUsingForm() C function was not wrapped by SWIG
- NextHead()/PrevHead() have optional 2nd parameter now

Changes from version 1.4.3 to 1.5.0
------------------------------------
- IDA Pro 6.1 support
- Added AskUsingForm() with embedded forms support (check ex_askusingform.py example and formchooser.py in the SDK)
- Added idautils.DecodePreviousInstruction() / DecodePrecedingInstruction()
- Added idc.BeginTypeUpdating() / EndTypeUpdating() for fast batch type update operations
- Added more IDP callbacks
- Added UI_Hooks with a few notification events
- Added idaapi.process_ui_action() / idc.ProcessUiAction()
- Added netnode.index() to get netnode number
- Better handling of ea_t values with bitwise negation
- Execute statement hotkey (Ctrl-F3), script timeout, and other options are now configurable with Python.cfg
- bugfix: idaapi.msg() / error() and warning() so they don't accept vararg
- bugfix: processor_t.id constants were incorrect
- bugfix: get_debug_names() was broken with IDA64
- Various bugfixes
- Added Scripts folder containing various IDAPython scripts

Changes from version 1.4.2 to 1.4.3
------------------------------------
- IDA Pro 6.0 support
- Python CLI now prints expression evaluation result (no need to use print())
- Changed Alt-8 to Ctrl-F3 (because it conflicts with window switching key Alt+n)
- Added get_highlighted_identifier()
- Added PluginForm class to allow UI development with either PyQt4 or PySide
- Added idautils.Entries() to enum entrypoints


Changes from version 1.4.1 to 1.4.2
------------------------------------
- Added command completion
- Added necessary changes so it compiles with Python 2.7
- Wrapped set_user_defined_prefix()


Changes from version 1.4.0 to 1.4.1
------------------------------------
- Added cli_t
- Added idaapi.ph to access current process fields
- Changed the copyright string to IDAPython Team
- Some platform dependant classes are present but useable only where applicable


Changes from version 1.3.0 to 1.4.0
------------------------------------
- IDA Pro 5.7 support
- idaapi.cvar.cmd is now accessible via idapi.cmd instead
- Python statement (Alt-8) is now 16kb long
- Dropped script box and File/Python file. IDA has this functionality now.
- Refactored the code
- It is possible to turn off script timeout
- All scripts are executed via 'IDAPython_ExecScript' (check idaapi.i)
- Added '--doc' switch to "build.py" script
- Documented all manually wrapped functions (check 'pywraps' module in the docs)
- Lots of cleanups and fixes


Changes from version 1.2.0 to 1.3.0
------------------------------------
- IDA Pro 5.6 support
- Added Appcall mechanism
- Added procregs to idautils.py (r254)
- Lots of cleanups and fixes

Changes from version 1.1.0 to 1.2.0
------------------------------------
- 64-bit support (largely untested)
- IDA Pro 5.5 support
- Long running (or inifinitely looping) scripts can now be stopped
- Host of IDC updates and fixes
- netnode.hpp is now mostly wrapped
- idautils use generators instead of lists
- Functions() and GetFchunkAttr() now work properly
- Lots of cleanups and fixes


Changes from version 0.9.0 to 1.0.0
-----------------------------------
- Upgraded IDA Pro base version to 5.1
- Dropped Python 2.4 support
- Mac OS X support
- IDC compatibility layer is now complete and up to date for IDA 5.1
- INCOMPATIBLE CHANGE: the idaapi module needs to be imported manually
- Support for IDB and debug notification hooks
- Support for GUI hotkeys (see examples/hotkey.py)
- Simple two-way calling mechanism between IDC and IDAPython
- Significantly better IDA API coverage
- Support for IDB and debug event hooks
- get_current_instruction() deprecated, use the idaapi.cvar.cmd variable
- Tons of IDC fixes
- Tons of other misc fixes


Changes from version 0.8.0 to 0.9.0
-----------------------------------
- Upgraded base version to IDA Pro 5.0
- Works with IDA Pro 5.1
- Python 2.4 and 2.5 supported
- Close to complete IDC compatbility layer (in sync with 4.9)
- Significatnly improved  IDA SDK API covergage (see STATUS.txt for details)
- IDA SDK patch size reduced to less than half
- Simplified installation (plugins.cfg modification not needed)
- Evaluation window content is saved over IDA restarts (in the database)
- Windows version is built with Microsoft Visual C++ Express Edition
- Build makefile replaced with a Python script
- Cleanups and small fixes


Changes from version 0.7.0 to 0.8.0
-----------------------------------
- Added support for IDA Pro 4.9
- Dropped support for IDA Pro 4.7
- NOTE: Windows version is linked against Python 2.4.
- New wrappers: search.hpp, dbg.hpp, loader.hpp, diskio.hpp, nalt.hpp
- idc.py synced up to IDA 4.8
- Added 38 IDC functions
- Fixed asklong(), askseg() and askaddr()
- Automatically generated cross reference documentation (epydoc)
- User-specific init file support (see README,txt)
- Deprecated some functions that have direct Python equivalents (see idc.py)
- Fixed exception in ScriptBox when invoked empty.
- Lots of cleanups and small fixes


Changes from version 0.6.0 to 0.7.0
-----------------------------------
- Batch execution support (use the option -OIDAPython:yourscript.py)
- Added ScriptBox - lists previously run scripts (Hotkey:Alt-7)
- Added support for IDA Pro 4.8 (both Linux and Windows)
- Dropped support for IDA Pro 4.6 and 4.6SP1 versions
- Wrapped the list chooser (see examples/choose.py)
- A dozen or so IDC functions added
- Lots of char * API calls wrapped
- Added Python error handling in the plugin C layer
- Bunch of misc small cleanups and fixes
- For more details see CHANGES-SWIG.txt and CHANGES-Plugin.txt

- API CHANGE: {Next|Prev}Function() return BADADDR instead of -1


Changes from version 0.5.0 to 0.6.0
-----------------------------------
- Added support for IDA Pro 4.7 (both Linux and Windows)
- Dropped support for IDA Pro 4.6SP1 beta on Linux
- Lots of IDC wrapper additions and fixes:
  - Added 30+ new wrappers to idc.py
  - Most Find*, Ask* and Seg* are now wrapped
  - Fixed broken NextAddr(), PrevAddr(), MakeFunction() and MakeName()
- Fixes to the makefile
- Cleanups for the idaapi wrapper
- Bunch of misc small cleanups and fixes
- For more details see CHANGES-SWIG.txt and CHANGES-Plugin.txt

