 HT ChangeLog
==============

version 2.0.21:
	- [x86] AVX2 updates
	- Fixed usage of unaliged pointers (Thanks Jan)
	- Restructed configure/makefile for better handling of
	  ncurses depedency (Thanks Jan)

version 2.0.20:
	- Fixed loading of 32 bit ELFs (Thanks Oleg)
	- Use wide ncurses if necessars (Thanks Jan)
	- Show search progress in MiB (Thanks Jan)

version 2.0.19:
	- [x86] fixed a lot of small bugs
	- fixed a crash with the "follow" function on
	  invalid addresses in analyser
	- [x86] AVX updates
	- [x86] AVX2
	- [x86] BMI, BMI2 and TBM instructions
	- fixed loading of ELF files with no section headers
	- [Win32] Fixed loading of files with path length > 100 (thanks Vitaliy)

version 2.0.18:
	- updated c++ demangler
	- [x86] SSE5/XOP/AVX merge
	- [x86] AMD LWP instructions
	- symbols "first" and "last" in hex view
	- project manager works again

version 2.0.17:
	- compilation fixes for gcc 4.4
	- fixed crash on garbage in elf section headers

version 2.0.16:
	- [x86] intel avx update
	- updated c++ demangler
	- small crash fix

version 2.0.15:
	- [Win32] removed a debug printf
	- fixed clipboard view
	- fixed ELF symbol viewer

version 2.0.14:
	- [x86] movbe, invept, invvpid
	- [eval] better help
	- [eval] last result (symbol _)
	- [eval] u8, u16 etc. for current byte, word..
	- fixed embarrassing endianess bug

version 2.0.13:
	- [win32] optimize redrawing (reduce flicker)
	- [x86] intel avx, aes and pclmulqdq extension

version 2.0.12:
	- fixed crash with too long lines
	- fixed some cosmetic resizing things in dialogs
	  (File-Open, Show-Xrefs)
	- c++-demangler from gcc 4.3

version 2.0.11:
	- [Win32] Save config in home directory
	- fixed crash while changing text highlighting
	- small bug fixes
	
version 2.0.10:
	- [x86] SSE5 :)
	
version 2.0.9:
	- [Mach-O] ARM and X86_64 support
	- [Mach-O] support for 64 bit images
	- small bugs fixes

version 2.0.8:
	- Loading Analyser for java class files was broken
	- Fixed some cosmetic resizing bugs
	- Fixed infinite loop in fgetstrz

version 2.0.7:
	- Added a missing #include found by gcc 4.3
	- Fixed minor problems found by gcc 4.3

version 2.0.6:
	- [POSIX] Ignore mouse events
	- Dump analyser output function was broken
	- Fixed a lot of (possible) buffer overflows

version 2.0.5:
	- Editing bytes in image mode was broken under
	  subtile circumstances

version 2.0.4:
	- Fixed some 64 bit issues

version 2.0.3:
	- [POSIX] Resize application on SIGWINCH
	- [x86] SSE4.1/SSE4.2
	- [x86] small bug fixes
	- [x86] reduced opcode table bloat
	- Allow different displacements in hex view

version 2.0.2:
	- [IA64] disassembler works again (is anybody using this?)
	- [Java] fixed stupid undefined behaviour bug
	- [Java] use Signature information when available
	         (annotates generic functions etc.)

version 2.0.1:
	- [Java] annotate exception handlers in byte code
	- [Java] some byte code improvements (lookupswitch, tableswitch)
	- Analyser can export HTML files again
	- [PowerPC] added Cell and POWER6 instructions

version 2.0:
	- renamed process.h to htprocess.h because of some stupid
	  cygwin build problems
	- fixed some problem with file sizes > 4 GiB

version 2.0beta6:
	- fixed crash when opening read only files in obscure situations
	- [ELF & java] fixed binary search in image view
	- [ELF64] some cosmetic fixes
	- [java] off by one
	
version 2.0beta5:
	- [Win32] messed up file-saving code

version 2.0beta4:
	- fixed crash in cp-demangle
	- [Win32] Relax CPU

version 2.0beta3:
	- fixed crash in drop-down widget
	- fixed loading of class files
	- fixed generating text output files of analyser
	- implemented automatic window tiling
	- fixed saving of text files

version 2.0beta2:
	- should now really support file sizes > 4 GiB
	- some ncurses wuerg-arounds
	- better handling of ELFs without program headers
	- bug fixes

version 2.0beta:
	- new disassembler: (PE and ELF)
		* x86_64
		* ARM
		* 64 bit PowerPC
		* VMX128 extension for PowerPC
	- x86_64 assembler
	- Allow file sizes > 4 GiB
	- Rewrote a lot

version 0.9.5:
	- [x86] wrong mnemnonics for iret/d/q

version 0.9.4:
	- [x86] Fixed stupid bug in assembler (group insns weren't 
	accessible)
	- [x86] Some labels generated by the analyzer were had wrong prefix

version 0.9.3:
	- [x86] added SSSE3 and missing vanderpool/pacifica instructions
	- [x86] andpd had wrong mnemonic
	- [x86] allow alternative mnemonics (like jz vs. je)

version 0.9.2:
	- updated ELF program header types
	- better Mach-O executable sections detection
	- allow ':' key for changing comments in analyser
	- [Win] use unicode output
	- compile with gcc 4.1
	- updated minilzo
	- small bug fixes

version 0.9.1:
	- updated cp-demangle.c from gcc: 
	  This fixes two bugs in the symbol name demangler which could
	  crash HT.

version 0.9.0:
	- analyser: support for int, half and byte data-types.
	- x86 disasm: invlpg, fisttp instructions added
	- x86 disasm: sse, sse2, sse3 instructions added
	- x86 asm: support for mmx instructions
	- configure: set -DNO_NATIVE_UNALIGNED_MOVES for platforms
	  other than x86
	- removed 'include <malloc.h>' from cp-demangle.c
	- fixed a buffer overflow in htperes.cc
	- handle ELFs w/o segment or program sections (Thanks Daniel Black)
	- don't malloc(0) (Thanks Daniel Black)
	- some keyboard fixed for windows xp

version 0.8.0:
	- g++ v3 abi demangler
	- x86 disasm: added undocumented ffreep (df c0) instruction
	- compiles with gcc 3.4
	- fixed buggy blockop-progress indicator
	- fixed ugly segfault with elf symbol loading
	- ppc disassebler updated (altivec instructions)
	- removed stefan's email address (dead)

version 0.8.0pre1:
	- disassembler:
		- IBM/Motorola PowerPC (PPC) (new)
	- file formats:
		- XBE (X-Box executable) support by Stefan Esser (experimental)
		- Mach-O header and image support for PPC and x86 (experimental)
		- FLT (Flat) support (experimental)
		- PEF support (experimental)
		- XCOFF32 support
		- COFF support for coff files without optional header
		- COFF big-endian support
		- ELF PPC support
		- ELF relocatable file support (experimental)
		- fixed buggy ELF reading code partially (thanks rpm28)
	- eval dialog: added function help
	- eval: not ('~') and logical-not ('!') operators
	- disassembler interface (int maxlen, not byte maxlen)
	- Win32: fixed access to native windows clipboard
	- Win32: high CPU usage problems fixed (sys_suspend() bugged)
	
version 0.7.5:
	- fixed bug in bnstr() with defaultbase > 10
	- fixed buffer overflow in htelfsym.cc (thanks Luis Barrancos)
	- fixed bug in ht_sys_file/ht_stdio_file::extend()
	- fixed bug, causing invalid history entries when specifying files
	  on the command-line
	- fixed bug in x86-assembler (correct opcode for [ebp+esp])
	- minor fixes in eval-lexer

version 0.7.4:
	- fixed bug in COFF code (hdr_ofs sometimes fixed to 0x800)
	- fixed bug in blockop (checking if const/var op didn't set 'i' and 'o' and sometimes failed)
	- fixed bug in Java bytecode disassembler: invalid opcodes crash.
	  Thanks Jerome (freejazz).
	- fixed bug in Java class processing code: errors always crash HT
	- fixed: 0xcafebabe in mach_kernel... made classread more strict
	- fixed object streaming bug in GET_OBJECT (only when compiled with GCC 3.3+)

version 0.7.3:
	- some keys were assigned to multiple commands in hex-viewer
	- percent display for searches and scrollbars in big files was incorrect
	- POSIX: improved keyboard handling (merge from 0.9.0 tree)
	- POSIX: X11 textmode keyboard support didn't work :-), was not configured correctly
branch_only	- configure now does final (release) builds by default (ie. -O2 -fomit-frame-pointer)
branch_only	- binary search in */image disabled because its buggy

version 0.7.2:
	- Hexview: Number of bytes per line can be changed now
	- PE/header: can now follow bound import directory link (it's offset not RVA !)
	- x86dis: "0f 0f 0f" is now marked invalid (as it should be)
	- alt-x in blockop dialog was used twice by "cut" and "select expr"
	- fixed problem in streams that caused files not to be flagged "modified"
	- security fix: main.cc: strncpy(appname, argv[0], sizeof appname-1);
	- qword "x shl/shr 32" returns invalid result
	- ELF/section headers: flags now displayed correctly (thanks "scut")
	- (POSIX) slightly improved keyboard handling (Ctrl+W = close window)

version 0.7.1:
	- (win2k/xp) fixed bug that caused ht to create ht.cfg in current
	  directory instead of executable's
	- (win32) findfirst/next now fill the ctime, mtime and atime fields
	- (win32) chdir() to "X:\" fixed
	- cmdline param '-h' works again
	- new config.guess/config.sub

version 0.7.0:
	- whole new Address class for the analyser. Much more flexible.
	  Enables segmented and 64-bit addresses.
	- ht_snprintf/ht_vsnprintf + many possible buffer overflows fixed
	- projects (groups of files)
	- LE: image/analyser,VxD support, internal relocations (beta, no imports)
	- Java: disassembler, image/analyser
	- NE: relocations improved
	- IA-64 disassembler + PE64 support
	- .Net IL disassembler + PE .Net support (alpha)
	- submenus
	- view current/cursor offset in a different view
	- tools/int2info.pl: converts Ralf Brown's Interrupt List to TexInfo
	- htpehead.cc: directory goto works now, OFSs really are RVAs !
	- sys/djgpp: ff2pstat(...) fixed
	- got rid of fmt_vaddress
	- PE/imports,exports,delay-imports based on ht_listbox
	- x86dis: movzx/movsx and "mov mem32/16, seg" param size ambiguity fixed
	  and many minor fixes
	- goto dialog auto-documents available eval() functions
	- Inter-process communication (IPC) via console redirection
	  on all existing platforms. Primitive terminal emulation.
	- qword support
	- new streamfiles: ht_sys_file, ht_stdio_file, ht_temp_file,
	  ht_null_file
	- some memory leaks killed (Valgrind sessions)
	- log-window scrolling fixed
	- virtual file system (VFS) rewritten, VFS viewer rewritten
	- many bugs fixed

version 0.6.0b:
	- textedit: save-bug fixed
	- sys/posix: pstat() fixed

version 0.6.0:
	- ELF: new OS ABI values supported (eg. FreeBSD)
	- built-in registry - data not code
	- palette system redesigned
	- bin2c text-open-bug for djgpp fixed
	- physical search modes in image/analyser views implemented
	- huge memory leak in binary search eliminated
	- text viewer/editor: many bugs fixed, improved visualization,
	  full undo support, speed ups, save works now
	- analyser output core rewritten
	- context menus
	- syntax highlighting in image/analyser views
	- text editor: choose syntax highlighting
	- x86-assembler: lock, repz, repnz support added
	- "save as" asks before overwriting :-)
	- search in PE/export, imports and ELF/symbols
	- history bug with visual search fixed
	- COFF/image and analyser implemented (experimental)
	- NE/image and analyser implemented (experimental)
	- NE/imports added, NE relocations started
	- info-viewer rewritten to cope with external files/references
	  and to support big files
	- x86dis: fixed 16/32 bug with "jmp far x:y", fixed bug with lss,lfs,lgs
	- ht-posix: X11 textmode support (for better key handling)
	- analyser speed ups
	- many bugs fixed

version 0.5.0:
	- htdata interface changes (list- and tree-enum)
	- improved ht-posix keyboard handling (home, end)
	- analyser can save and load its entire state ! .htcfg files are
	  written for all analysed files
	- cstream rewritten and renamed to mfile
	- file truncate/extend now undoable
	- scrollbar in textedit
	- replace implemented, htsearch partially rewritten
	- resize/move behaviour changed (different modes for move/resize,
	  works better on unices)
	- display if in edit or view mode (hex)
	- x86asm: "jmp far x:y" works now
	- select,copy,insert,delete through alt+s,alt+c,alt+v,alt+d
	- ht_compressed_stream implemented (uses miniLZO). it's used to compress
	  all config files (down to about 30% of their original size)
	- time tag edit (!)
	- file/new implemented
	- textfile save implemented
	- "save as" implemented
	- vfs create file implemented
	- improved handling for broken files
	- textedit cut/delete
	- text editor undo + protocol
	- new info file viewer
	- byte-order/endianess problems fixed (PE, ELF, etc...)
	- ELF64 support started
	- x86dis: fixed signed imm bug (e.g. add word ptr [...], s_imm)
	- make-system updated and fixed
	- documentation updated
	- fixed bug with emptied histories
	- many bugs fixed

version 0.4.5:
	- file truncate/extend
	- file has been modified, save ?
	- text viewer
	- analyser string detection
	- improved write caching (consumes less memory)
	- ht_textfile (allows intermixed line/offset-based read and write access)
	- text editor with syntax highlighting (C/C++)
	- handlemsg for ht_subs
	- ht_group_sub implemented
	- very powerful yacc/lex-based expression evaluator (supports functions
	  and symbols), replaces old integer and old c/asm string evaluators.
	  works inside: goto, search (eval once), blockop, search (halt if != 0).
	- evaluate dialog
	- str- and hex-inputfields fixed
	- statictext fixed (again...)
	- ht_view resizing rewritten
	- non-modal clipboard window
	- atoms based on tree
	- delete_timer didn't work ?!
	- textfile autodetect
	- file manager: copy files
	- edit comments
	- delete history entries
	- LE: object-flags update
	- improved scrollbar
	- scrollbar in hex/analyser
	- position indicators
	- new search mode: halt if eval(expr) != 0
	- entropy/entropy2 functions search (halt if != 0)
	- LE: USE16 segments
	- improved non-x86 support
	- many bugs fixed

version 0.4.4d:
	- prefixed genericdrawbuf methods with "b_" to avoid macro problems
	  on some systems (printf on hppa)
	- compiles with gcc 3.0

version 0.4.4c:
	- linux/htsys.cc to include string.h (needed by FreeBSD, thanks Fyodor)
	- word/dword tags work again
	- 386-specific debug code removed
	- tools.h includes stdlib.h instead of malloc.h

version 0.4.4b:
	- PE/exports ordinal bug fixed
	- escape in registry bug fixed
	- window-list on empty desktop bug fixed
	- build system errors fixed (hthelp.inc missing)

version 0.4.4:
	- exposed() implemented (redraw view only if exposed())
	- vfs-viewer (NC/MC-style abstract file manager) implemented
	- vfs's implemented: file, registry
	- registry edit dialogs (symlink, color)
	- block operations (fill file blocks with bytes, words,
	  dwords or fixed strings)
	- dtree bugs fixed :-(
	- read caching fixed (ate up too much mem...) and disabled (now that it
	  works its too slow...)
	- write caching speed-up. especially for linear writes (e.g. block ops)
	- configuration store/load (re)implemented, new config file format,
	  architecture independant (32+ bits).
	- object-streams implemented (bin, text, memmap)
	- statictext (finally ?) fixed
	- i/o-system abstracted further
	- win32- and dj-suspend functions implemented
	- per-file not per-viewer edit-mode
	- registry store/load
	- history store/load
	- ELF support improved: relocations
	- search for xrefs
	- show recursive function references
	- many bugs fixed

version 0.4.3:
	- statictext rewritten (finally ?)
	- pe and coff share some more data
	- quickfind completition (tab) for ht_listbox
	- htdata.cc rewritten (whole new data architecture)
	- rewrote resize mechanism
	- auto-select pasted data
	- registry implemented (replaces old palette system, more flexible)
	- color editor scrapped
	- viewer interfaces cleaned up (new name: format)
	- assembler fully integrated (write)
	- ht_listpopup is now based on ht_listbox
	- dialog histories (search, goto & files)
	- improved linux support (select-mode through alt+v,
	  better menus, no longer wastes CPU time when idle)
	- empty uformats-bug fixed
	- message queuing implemented (dirty but works...)
	- listbox scrollbar works correctly now
	- enhanced win32 support
	- heavily improved ELF support: section headers, program headers,
	  symbol tables and code/data analyser
	- collapsable hts_subs + collapsable headers
	- listbox sorting by row(s)
	- follow dword ptr at cursor (press 'f')
	- name demangling via libiberty's cplus-dem
	- more efficient growing algorithm for memstreams
	- general file information viewer
	- cancel searches in progress
	- customizable status (time, date, analyser activity)
	- LE support improved: entrypoints
	- visual (regex) searching implemented
	- packed statictag-tables
	- various asm/disasm(x86), search and clipboard bugs fixed
	- many bugs fixed

version 0.4.2:
	- empty files/streams and empty ht_uviewers supported correctly
	- clipboard implemented (copy, paste, show, clear, copy from, paste to)
	- NE support started (header, segments, entrypoints, names)
	- close windows, always start
	- statictext finally works
	- Space in char-tag and in bit-tag work now
	- 'jmp/call Ep'-bug fixed
	- automatically select search results in hex
	- battlefield implemented
	- select, delete, copy and paste in inputlines
	- descs have a selection dialog
	- per bit dirty
	- only PE head when unknown optmagic
	- much x86-assembler work
	- pe resource refs
	- always-on-top child-windows implemented
	- some scrollbars bugs fixed
	- COFF support started, PE code rewired
	- LE virtual section memory supported (crashed on bigmem.drv)
	- fixed a crash in pe/image when analysis changed page layout heavily
	- bad ht_cached_stream bug fixed (lets hope...)
	- select hex visualisation problems fixed
	- inputline's Shift+Del works
	- search speed improved (caching disabled)
	- ht_cached_stream large reads improved
	- dynamic menus
	- listboxes merged
	- many bugs fixed

version 0.4.1:
	- PE delay-imports work now
	- 'db 0'-bug fixed
	- 'push ff/ffff'-bug fixed
	- pressing 'c' in image edit mode now works correctly
	- editing dos read-only files handled
	- I/O error handling started
	- continue searches
	- per-viewer history
	- x86dis now emits explicit "<size> ptr" on ambigous insns
	- rewrote ht_uviewer
	- everybody uses the mktag_* functions now
	- tag-system rewritten (binary tags, 64-bit ids)
	- partially rewrote htstream.cc (ht_cached_stream, ht_layer_stream)
	- ht_tree delete bug fixed
	- Ctrl-PageDown-bug in log fixed
	- selections implemented
	- bit-tag implemented
	- ELF support started (header)
	- color-transparency
	- MZ image (re)implemented
	- LE image (re)implemented (LE non-linear image mapping supported!)
	- new search feature: range
	- active and move windows different colors + help
	- menus implemented
	- color- and flags-tag implemented
	- sort delay-imports
	- full C-like expression support in all address dialogs (+,-,*,/,%,&,|,^,
	  (subexpr)), token evaluation interceptable through hook-procs
	- window management (resize, move)
	- many bugs fixed

version 0.4.0:
	- htstream bug fixed (seems to be a DJGPP/libc/doc? bug)
	- helpviewer scrollbar added
	- helpviewer scrollbar-bugs fixed
	- LE support started (header, objects, pagemap for now)
	- dialog-idle, analysis continues in background
	- radio/checkboxes implemented
	- statictext automatic line breaking
	- sort imports/exports by ord/addr/name or unsorted/like in file
	- search system (search for hex/ascii and C/asm strings)
	- new search feature: case insensitive search
	- search progress indicator
	- letter highlight and ALT-shortcut
	- palette system changed
	- tree-viewer implemented
	- PE-resource support started
	- better linux visualization support
	- edit in image viewer
	- win32 console support started
	- many other changes

version 0.3.992:
	- analyser speed up
	- analyser xrefs work correctly on imports/exports
	- various analyser improvements
	- "undo follow" function introduced
	- finshed help system
	- wrote help
	- palette system restructered
	- htstream bug on small files fixed.
	- VxD support started
	- config file support started

version 0.3.991:
	- linux-io
	- makefile
	- messageboxes
	- code speedup
	- introduced the new disassembler
	- dynamic palettes
	- analyser tags work
	- help system started
	- search system started
	- source code cleaner tool (solves tab/space, CR/CRLF problems)

version 20000114 (snapshot):
	- The initial HT (0.3.0-0.3.9) has been completly (!) rewritten.
	  First release of the new version.
