**** Changelog GEQUEL : Kees Lemmens , March 2003/Aug 2015 **** August 2015 : v 2.05, KL: 1) Added a new "-s" option to be able to provide another socketname than the default (default is now set in gequel.h as "/var/run/mysqld/mysqld.sock" which is the Debian standard name). 2) Fixed a segfault in showrecords.c : if row[x] was a NULL pointer strlen(row[x]) caused a crash. Now utf8_text is simply set to an empty string. 3) Fixed a few warnings about conversion from int to gpointer. It should be "long" to avoid a warning. December 2011 : v 2.04, KL: 1) Small modification in showrecords.c to convert text from the mysql database into UTF8 before inserting it into a gtk widget in the list, thus supporting unicode and 8-bit characters in records. 2) Integer fields have their length in MYSQL_FIELD structure set to 2, which is not enough to hold a string conversion. For now I use a kludge to set the length to 16 in case of a numerical field. Should be made more robust later ! February 2009 : v 2.03a, KL: 1) Small adaptations to compile and run on 64-bit systems. April 2009 : v 2.03, KL: 1) Now we copy the value of both database and table from the droplist to the Params structure instead of simply using a pointer to the internal value of the droplist. This is to avoid problems when certain Gtk versions decide to release the content of a droplist which is not visible, which would in older versions of Gequel also remove the name of table and database from the internal Gequel structure and thus making further updates of the database impossible. September 2008 : v 2.02, KL: 1) Column headers clickable now to be able to resort the view on a different key without changing the global sortkey and without a reload from the database. September 2008 : v 2.01, KL: 1) Complete rewrite of the browser tabs to use GtkTreeView and GtkListStore instead of the deprecated GtkCList. It is now fully Gtk2 compatible. 2) Cleanup of the style code for fonts and colors that didn't work well in the Gtk2.0 versions of gequel 1.xxx. 3) Large overall cleanup of the code,e.g. introduction of new tabhandler routines. Now the tabs are not destroyed and recreated anymore if a new content is to be loaded, but the old one is simply cleaned up (refurbished :-) and then reused. 4) Dropped all support for Gtk1.xxx 5) Fixed some smaller bugs (e.g. the column header contained the wrong names if an SQL query was used). April , 2007: v1.15 , KL: 1) Fixed the query window routines for Gtk2.0 (using GtktextView instead of Gtktext). The old Gtk2 version did a segfault on saveQuery and didn't work on loadQuery. 2) There is now an execute query button instead of waiting on Ctrl-Enter as the first is probably more clear and the latter doesn't work for GtktextView. April , 2007: v1.14 , KL: 1) Fixed a bug in error reporting when mysql didn't complete a query sucessfully. Mysql error reporting has changed which is why some errors were not detected and gequel reported e.g. "Update successful" after a query when this was NOT the case. This was because gequel used if(err < 0) instead of if(err != 0) which is of course more safe. 2) Clicking one of the Tabs now also executes some actions if this is necessary to update it's contents. Previously you had to click a button first. (e.g. clicking the Field tab would not show any Fields before you also clicked the "Fields" button. 3) Gtk2 support is now improved and adapted to work without having Gnome installed, as the latest Slackware - on which gequel is developed - doesn't install Gnome anymore. The old glade-2 generated code that always used gnome and so it wasn't possible to compile this code on Slackware 11.0. May , 2005: v1.13 , KL: 1) Improved support for field_type indication in FieldTab (Enum, Decimal, Blob and many others are now correctly shown). 2) Provided more support for defaults in InsertRecord window : now presets the correct number of decimal zeros for Decimal fields and sets the first Enumerator for Enum fields declared to be NOT NULL. May , 2005: v1.12 , KL: 1) Small change to default types to support more MySQL field types (especially numeric data types). Thanks to Hal Goldfarb for pointing this out ;-) Feb , 2005: v1.11 , KL: 1) Fixed small bug with new insert of records containing integer or float fields : now automatically sets a 0 (int) or 0.0 (float) in the record field instead of leaving it empty. 2) Added Auto Refresh button : some people didn't like the auto-refresh of the RecordTab when doing many updates, as it forces them to scroll back to the last position. Disabling the Auto-Refresh leaves the RecordTab unmodified (but also with possible old contents !). Feb , 2005: v1.10 , KL: 1) Added new Settings menu with currently only one option : suppress the confirmation dialogbox for record modifications. Also added this a commandline option (-n). 2) Made Gequel also exit the mainloop when clicking the close button supplied by the windowmanager. 3) Made the GUI larger again, as Gequel isn't in Puppy anymore and almost anyone has at least a 1024x768 screen now. Mar , 2004: v1.09a , KL: Made the GUI slightly smaller, so that it fits better on small 640x480 screens (like on Puppy-Linux). Oct 9, 2003; v1.09 , KL: 1) automatically show records after a table is selected, 2) made dialogboxes modal to avoid multiple dialogboxes that may result in crashes if one box deletes the record structure while another is still waiting for a user response: the second one has then a non-existent record reference. Sept , 2003; v1.08 , KL: can't remember what I changed here :) March 29, 2003; v1.07 , KL : GtkTextView for logwindow in GTK 2.0 implemented. March 29, 2003; v1.06 , KL : 1) Save Records now saves the current tab instead of always the "Show Records" tab. 2) Save Record now implemented. 3) Reorganized the code for port to glade-2 and gtk 2.0. Two subtrees : GTK 1.2 and GTK 2.0 sharing common sources in commonsrc. Gequel 2.0 is more or less usable but the query and log windows (GtkText !!) do not work yet. Any volonteers to rewrite them to GtkTextView ? March 17, 2003; v1.05 , KL : one single setColumnWidth routine : uses either titlelength or fieldlength depending on which one is the longest. March 17, 2003; v1.04 , KL : searches now also ordered by sortkey. March 17, 2003; v1.03 , KL : fixed little bug in showquery. A query can result in less columns than numflds. ti->titles alloactes space for nrcols so filling it with numflds titles can lead to unpredicted results. March 17, 2003; v1.02 , KL : each recordform now has a textlabel to set a title or some extra information. March 16, 2003; v1.01 , KL : minor cleanups, search functionality now implemented, bug in insertRecordAction : strcat(query + strlen(query) ...) should be just strcat(query, ....). March 16, 2003; v1.0 , KL : major cleanup, large parts of code rewritten to introduce a new TabInfo structure allowing each tab to have it's own private information source. Now an arbitrary number of tabs can be used in a later stage, without the need for large modifications to the code. March 16, 2003; v0.98 , KL : implemented record,query and log save and load functionality. March 15, 2003; v0.97 , KL : sortkey now reset after selecting a new table. Query window now implemented as well, removed sanity checks from g_malloc as the GTK manual says it will handle memory allocation errors by itself. March 14, 2003; v0.96 , KL : put tabs and styles in arrays and use enumerate instead of separate names. This makes adding tabs and loops over all tabs or styles more easy. March 13, 2003; v0.95 , KL : fixed a small bug where on record in browser caused a seg fault (event == NULL) March 13, 2003; v0.94 , KL : new tabbed browser with separate Clists for Fields, Records, Query - and Search output. March 13, 2003; v0.92 , KL : small bugfix in querylength computation (sqlaction) that fixes failure of updates for records with all fields (nearly) full. March 12, 2003; v0.91 BETA, KL : sortkey now selectable in showfields (use doubleclick), sortkey field gets different color (red), boldfont for fieldnames and some labels. Dialogbox now pops up near Mouse. March 11, 2003; v0.9 BETA, KL : (first public release)