Changelog
#########

This page has the goal to record breaking change in the API between versions.
New features may be listed but probably not always.


Change from v0.3 to v1.0
========================

New features:

* new class :class:`bip.base.BipIdb`
* new class :class:`bip.base.BipIda`
* new class :class:`bip.gui.BipUserSelect`

Breaking changes:

* renaming of ``bip.base.XrefTypes`` to ``bip.base._XrefTypes``
* renaming of ``bip.base.DestOpType`` to ``bip.base.BipDestOpType``
* renaming of ``bip.base.OpType`` to ``bip.base.BipOpType``
* renaming of ``bip.base.Operand`` to ``bip.base.BipOperand``
* renaming of ``bip.hexrays.HexRaysEvent`` to ``bip.base.HxEvent``
* renaming of ``bip.base.Instr`` to ``bip.base.BipInstr``
* renaming of ``bip.base.BipFuncFlags`` to ``bip.base._BipFuncFlags``
* renaming of ``bip.base.BipFlowChartFlag`` to ``bip.base._BipFlowChartFlag``
* renaming of ``bip.base.BipType._GetClassBipType`` to ``bip.base.BipType._get_class_bip_type``
* renaming of ``bip.base.BipType.GetBipTypeNoCopy`` to ``bip.base.BipType.from_tinfo_no_copy``
* renaming of ``bip.base.BipType.GetBipType`` to ``bip.base.BipType.from_tinfo``
* renaming of ``bip.base.BipType.FromC`` to ``bip.base.BipType.from_c``
* renaming of ``bip.base.BipType.ImportCHeader`` to ``bip.base.BipType.import_c_header``
* renaming of ``bip.base.BipInstr.Make`` to ``bip.base.BipInstr.make``
* renaming of ``bip.base.BipFunction.ByOrdinal`` to ``bip.base.BipFunction.by_ordinal``
* renaming of ``bip.base.BipFunction.Entries`` to ``bip.base.BipFunction.entries``
* renaming of ``bip.base.BipFunction.Entries_iter`` to ``bip.base.BipFunction.entries_iter``
* renaming of ``bip.base.BipFunction.Count`` to ``bip.base.BipFunction.count``
* renaming of ``bip.hexrays.HxCItem.GetHxCItem`` to ``bip.hexrays.HxCItem.from_citem``
* renaming of ``bip.hexrays.HxCItem._createChild`` to ``bip.hexrays.HxCItem._create_child``
* renaming of ``bip.hexrays.CNode._createChild`` to ``bip.hexrays.CNode._create_child``
* renaming of ``bip.hexrays.HxCStmt.st_childs`` to ``bip.hexrays.HxCStmt.stmt_children``
* renaming of ``bip.hexrays.CNodeStmt.st_childs`` to ``bip.hexrays.CNodeStmt.stmt_children``
* renaming of ``bip.hexrays.CNodeStmt.expr_childs`` to ``bip.hexrays.CNodeStmt.expr_children``
* renaming of ``bip.hexrays.CNode.GetCNode`` to ``bip.hexrays.CNode.from_citem``
* renaming of ``bip.hexrays.CNode.cfunc`` to ``bip.hexrays.CNode.hxcfunc``
* renaming of ``bip.base.BipFunction.hxfunc`` to ``bip.base.BipFunction.hxcfunc``
* renaming of ``bip.hexrays.HxLvar.hxfunc`` to ``bip.hexrays.HxLvar.hxcfunc``
* function ``bip.base.utils.get_ptr_size`` became static method ``bip.base.BipIdb.ptr_size``
* function ``bip.base.utils.absea`` became a static method of ``bip.base.BipIdb``
* function ``bip.base.utils.relea`` became a static method of ``bip.base.BipIdb``
* ``min_ea``, ``max_ea`` and ``Here``, functions are now in ``bip.base.bipidb``
* function ``bip.base.utils.get_addr_by_name`` has been removed.
* function ``bip.base.utils.get_name_by_addr`` has been removed.
* function ``bip.base.utils.get_struct_from_lvar`` has been removed.
* function ``bip.base.utils.Ptr`` became static method of ``bip.base.BipData.get_ptr``
* function ``bip.base.utils.bip_exec_sync`` became static method ``bip.base.BipIda.exec_sync``
* function ``bip.base.utils.get_highlighted_identifier_as_int`` became static method ``BipUserSelect.get_curr_highlighted_int``
* removed classes ``BaseGuiAction`` and ``ContextMenuHooks``
* renamed method ``bip.base.BipType.childs`` to ``bip.base.BiType.children``


Sed script for automatic update of plugins (no garantee to be perfect or to
avoid colisions) (use with ``sed -f RULEFILE INPUTFILE``):

.. code-block:: none

    s/XrefTypes/_XrefTypes/g
    s/DestOpType/BipDestOpType/g
    s/OpType/BipOpType/g
    s/Operand/BipOperand/g
    s/countBipOperand/countOperand/g
    s/HexRaysEvent/HxEvent/g
    s/Instr/BipInstr/g
    s/BipFuncFlags/_BipFuncFlags/g
    s/BipFlowChartFlag/_BipFlowChartFlag/g
    s/_GetClassBipType/_get_class_bip_type/g
    s/GetBipTypeNoCopy/from_tinfo_no_copy/g
    s/GetBipType/from_tinfo/g
    s/FromC/from_c/g
    s/ImportCHeader/import_c_header/g
    s/ByOrdinal/by_ordinal/g
    s/Entries/entries/g
    s/GetHxCItem/from_citem/g
    s/_createChild/_create_child/g
    s/st_childs/stmt_children/g
    s/expr_childs/expr_children/g
    s/GetCNode/from_citem/g
    s/get_ptr_size/BipIdb.ptr_size/g
    s/bip_exec_sync/BipIda.exec_sync/g
    s/get_highlighted_identifier_as_int/BipUserSelect.get_curr_highlighted_int/g
    s/childs/children/g

Are not included in this sed file the change to ``BipInstr.Make``,
``BipFunction.Count``, ``Cnode.cfunc``, ``Ptr`` which can easilly create
problems.

This update removed also the ``example``, ``scripts`` and ``plugins``
directory which will not be maintain as part of Bip (and where probably
already not working since some times).


