File: ChangeLog

package info (click to toggle)
gtoaster 0.19991130-1
  • links: PTS
  • area: main
  • in suites: potato
  • size: 1,700 kB
  • ctags: 1,318
  • sloc: ansic: 12,739; sh: 353; makefile: 217; sed: 93
file content (1093 lines) | stat: -rw-r--r-- 59,711 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
02.04.1999
 - bugfix: taking care of trailing slashes
 - bugfix: do not create empty dircache entries when loading from dir.cache
 - bugfix: do not crash when dir.cache is zero-sized
 - bugfix: fixed getdir bug where a char * was typecasted (char*)&
 - bugfix: dircache_createentry returned last cacheentry instead of
           newly created entry when cache was full
	   => problem of dircache delivering wrong data should be solved
03.04.1999
 - bugfix: dircache_createentry accessed memory area beyond
           MAX_CACHEDIR_ENTRIES,which could be the reason for some of the
	   system crashes
 - bugfix: disabled tree update when copying files as there is no 
           easy way of sending a deselect signal to items of a subtree
	   when collapsing,so that a fileselect widget would never notice
	   that the treeitem it references to does no more exist
 - bugfix: implemented display workaround for fileselect widget in source.c
           This is necessary for the same reason.
 - Implemented basic drag and drop support functions to getdir.c/getdir.h
   => getdir_dirinfo_create function changed parameter count !
 - dndsetup_drag now ignores handle functions set to NULL instead of 
   connecting them to their respective signals
 - Implemented unselect on collapse => removed fileselect hack in source.c
   and fsedit.c
 - dirlow_subdirentries now returns 0 or 1 instead of the number of
   subdirectories => reader stops at the first directory it finds,
   saving quite a bit of time
 - bugfix: this one is really hard: I seem to have fixed that problem about
   the segmentation fault whenever the subtree of the first item in a tree
   got collapsed while an item of another subtree within this 
   particular subtree was selected. 
   This is the oddest behavior i experienced for a very long time ;-)
   however,the "solution" seems to be the oddest of all:
   inserting a dummy tree_item,which does not even have to be visible,
   makes the whole thing stable,which is exactly what I want ;-)
   Ill consult some Gtk Developer about that problem as soon as possible...
 - introduced update of DirTree when files get copied or deleted
   (this is essentially the code from yesterday,only the bit about the
   unselect notification has now been solved so that this code now
   actually works)
 - bugfix: getdir.c collapse now does only select item about to collapse if
   it is not already selected (this bug was NOT the reason for the GtkTree
   oddball above,the introduced workaround is still necessary)
 - bugfix: corrected the behavior of the drag and drop functions according
   to the gtk-tutorial,essentially attaching any tree *before*
   drag and drop gets initialized
 - bugfix: expand/collapse are now taking care themselves about wether
   a widget is already expanded or not,because Gtk not only emits expand
   and collapse signals whenever it feels in the right mood to,but does not
   even provide a means of checking wether an item is already expanded or not
04.04.1999
 - moved essential file handling functions like adding/removing files
   to fileman.c/fileman.h to make the source a bit more structured.
   also they have been changed to fit the needs of the corresponding
   popup menu in the dirtree window
 - bugfix: fixed some bug introduced yesterday when trying to make
   drop on tree items work,which caused the expand function to behave
   somewhat odd
 - implemented handling routines for drop on tree. This does,however,not
   at all mean that drop on tree does no work as it should. Still,only
   the root dir of the cd to be created can be used as drop destination.
   I am still trying to figure the reason,why drag and drop does not work
   for the other tree items.however,if gtk would some day kindly accept
   them as drop destinations,drop on trees would be fully implemented from
   the beginning on.
 - added fileman_strippath() as a generic way to remove the path from a 
   filename. This enables the user to drag the root tree onto the cd path
   as empty files will be renamed to "root"
 - implemented tree remove function,but did not implement updating the
   display yet. you'll have to collapse the parent tree and reexpand it
   to make the changes apply to the display.
 - tree is now once more check for having subdir entries before expanding,
   avoiding some display error caused by expanding a tree without treeitem 
   entries (which happens,whenever there have been changes to the directory
   structure with the tree informations already read in)
 - program is now finally including the right header files so that it should 
   compile on non-Gnome systems now
05.04.1999
 - implemented update on tree delete. in the course of doing so there have
   been some minor changes in getdir.c/getdir.h,primarily getdir_dirinfo 
   has been adapted to hold a parent-tree_item,which has now to be passed
   additionally to getdir_connectstdsignals().
06.04.1999
 - defined the stream database for conversion from stream:xxx to trackinfo
 - bugfix: selectlist_create() did always create a 3 column list despite the
   value given as parameter
 - created internal struct source including isotrack (which already gets
   registered to streams)
 - introduced trackedit_gettrack() as a generic way of getting a track
   of the tracklist,without having to know the internal structure of
   trackedit. adapted "record.c" accordingly.
 - added handler for destroy to tracks.h,implemented handler for isotrack
 - bugfix: destroy() handler did not get called on tracks_destroy()
 - introduced function tracks_valid() returning the state of the track
   (wether data is available or not),adapted isotrack.c accordingly
 - record.c now only records tracks that are marked valid.
 - a pointer to the trackinfo struct of a track id now stored within
   trackedit clist as given back by selectlist_create();
 - implemented drop on trackedit,simply appending the new track to the
   existing tracks
 - bugfix: only MAX_STREAMS-1 items were possible due to an invalid
   streamcount-check
 - bugfix: do only write as many bytes as have been read
 - bugfix: quit writing process if no tracks were found
 - bugfix: do not remove expand symbol from parent tree items (getdir.c)
 - created stubs for cdrom source support
07.04.1999
 - implemented cd tracklist,currently displaying one data track per drive,
   as no detect routines have been implemented yet
 - implemented cd copy data track type finally enabling on-the-fly copies
   of data tracks
08.04.1999
 - implemented tracklist detect function
 - implemented audiotrack type and reading functions
 - bugfix: set tracktype correctly in audiotrack.c
 - bugfix: do check tracktype and call cdrecord accordingly
 - introduced precache flag in tracks.h
 - implemented track precache call in trackedit.c (currently commented out
   due to the lack of the actual functions)
09.04.1999
 - implemented precache track and corresponding functions,
   uncommented entry in trackedit.c
 - added preliminary support for recognizing recorder precaching flag
   by spefifying recorder in preferences.h
 - bugfix: do clean memory after starting up a pipe (arguments string did
   not get clear after function call,which may have caused the occasional
   segfaults occurring on extensive piping usage)
 - bugfix: yet another ugly bug in piping_create() - when copying a string
   from one place to another always remember the terminating zero has to 
   be taken into account when calculating the memory usage of that string
10.04.1999
 - made preread non-blocking,adapted trackedit.c to the new design
 - preread tracks now have " (preread)" added to their name,
   trackname and filesize now get upated after a preread
 - bugfix: track1 was precached regardless of the precache flag
 - bugfix: fixed totally messed routine which caused tracks to be preread
   only when all they were direct neighbors in the tracklist
 - bugfix: do not increment currently preread tracks running number
   just after initializing preread cycle
11.04.1999
 - implemented tracks_tracksize() for audiotracks using cdda2wav
 - created progress box when prereading tracks
 - implemented deleting temp file when preread track is destroyed
 - bugfix: handle precache-requirement degrading in precachetrack_stopcb()
   correctly
 - deinitialize Tracklist,deleting temporary data allocated by precaching
 - renamed gtogo to gtoaster (not yet consequently though)
 - created "make install" rule installing gtoaster in /usr/local/bin
 - created definition specifying the location of the icon files
12.04.1999
 - implemented measuring throughput and estimating remaining time when
   precaching tracks
 - translocated icons from external files into the ELF binary
 - added scrollbars to Tracklist Window
 - do compute *.h dependencies in Makefile,enabling objects to be
   automatically recompiled whenever their header files change
   [patch by C.Wendt@bigfoot.com]
 - created basic doubleclick management object,introduced dummy handler
   for selectlist.c
 - implemented full doubleclick handler for selectlist.c,adapted filelist.c,
   changed several calls to filelist.c and selectlist.c according to the
   new call rules
 - implemented a changedir in getdir.c,which allows to change into a tree item
   by specifying its parent item and name
 - implemented handlers in source.c and fsedit.c to handle double click on
   directories
13.04.1999
 - did some organisatory stuff: created Credits,Install and README files
 - converted varman.c to normal c,adapted varman to suit the special needs
   of GnomeToaster,still missing save functions though
 - created treedroppatch.c,patching the tree to accept drop events correctly
   using a method inspired by Christian Wendt: 
   The root tree is now set up as drop destination. a handler is then
   installed for the root tree,redistributing the drop events to their
   appropriate receivers manually.The receiving items get a normal
   data_received signal,including the normal data theyd usually get.
   So this problem could finally be solved with the effort of just
   a few lines additional source code.
 - consequently disabled initialization of any treeItem as drop destination.
   all of them are now handled by treedroppatch.c (remember the first one ?
   it would have worked anyway,but is now also handle via treedroppatch.c)
 - changed Selectiontype for trees from single to browse which makes the
   trees behave more adequately when doing a tree-drag
 - applied Patch by Christian Wendt to process some basic commandline 
   parameters,first-time-enabling configuration without recompilation
   (this code will undergo significant changes in the near future though,
   as the moment is close when the final preferences-concept will 
   be complete)
16.04.1999
 - implemented datatracksize detect using recursive seek&read
   (try and error principle somewhat similar to recursive search alghorithms)
 - relocated tracksize detect for data tracks from the correspondent track
   ioctl to the trackinit function. this speeds up working speed significantly
   as tracksize has to be calculated just once...
 - implemented filedrop on trackedit support,treating every file as a
   raw data track.
 - bugfix: corrected include define for datatrack.h   
18.04.1999
 - temporarily enabled precaching for isofs tracks as an attempt to write
   a 460MB data cd went wrong due to loss of streaming
22.04.1999
 - reenabled on-the-fly writing of isofs tracks as the loss of streaming
   was definitely caused by a very fragmented dos partition and did
   never occur again since the harddrive has been defragmented.
 - created datacopydlg structure collecting all those routines and 
   vars used when displaying a progress box,so that this box can easily
   be reproduced on other occasions...
 - fixed a bug where isofs got stuck in estimating tracksize due to a full
   error pipe coming from the child process calculating disc usage
 - introduced progress bar during the recording process
 - negative rest times originating from miscalculated tracksizes are cut
   to 0 in datacopydlg.c
25.04.1999
 - enabled selective hiding of certain popup menu entries by setting
   their handlers to NULL
 - introduced popup entry "mkdir" to support directory creation within
   a selectlist.
 - adapted program context accordingly,implemented mkdir handler for 
   fsedit.c
 - implemented create_directory dialog in fileman.c,introduced mkdirin(p,n)
   convenience call in dirlow.c
 - bound mkdirdialog to popup menu and implemented display updating
 - bugfix: update the right side on dir_tree_remove also when directory
   to be removed is not currently selected
 - implemented Create Dir dialog within the tree structure,appended
   corresponding entry to popup menu
 - removed parent!=NULL check in getdir_connectstdsignals,thus attaching
   the popup menu also to items without parents
   Handler functions do have to take care of themselves now
 - bugfix: fixed nasty bug where fileman_mkdirdialog invoked the callback
   function with the wrong data structure
 - bugfix: update tree side when directory is created   
 - bugfix: update subdir informations when directory is created
 - introduced a define in preferences.h defining a standard buffer size
   used for copying,writing,reading,recording
 - removed some unused vars from precachetrack.c
27.04.1999
 - added convenience functions to varman to process copies of strings,
   not the strings themselves. This makes varman var handling a good
   deal easier.
 - GnomeToaster now uses varman to store its preferences.
 - fixed bug in varman where no variables could actually be set because
   of a malformed comparison while range-checking the database 
   entry counter
04.05.1999
 - switched from mkisofs to mkhybrid,creating Joliet+Rockridge extensions
   by default
05.05.1999
 - introduced menu entry for editing the preferences. no handler function yet.
 - implemented stub preferences dialog with a few exports to add config pages
   as necessary
 - created "apply" mechanism for preferences
13.05.1999
 - implemented the first varmanwidgets widget,a test input box,which connects
   to a varman var and provides a visual widget.
 - implemented fsedit_destpath editing feature using the new preferences 
   functions. This Widget is not of any use yet,though,as handlers for
   applying changes to the varman var are still missing.
14.05.1999
 - created some handling routines for varman_change_callbacks (including
   their implementation using a Glist) -> varman should now be mostly
   up to date for what i need
 - implemented varman var updating from varmanwidgets_entry
 - defined connectivity of varmanwidgets more accurately
 - corrected an implementation bug within the glist access functions
 - introduced Undo button to preferences panel
 - defined stub handler for fsedit changes 
 - finished work on first configuration item (which was practically the
   worst already: the FSEDIT_DESTPATH var)
 - made isotrack.c configurable via preferences
 - bugfix: do allocate significantly more memory than necessary within the
   varman_copy functions so that the caller can actually work with the strings
   returned
15.05.1999
 - use varman for preferences of the recording part
 - introduced varmanwidgets_checkbox
 - bugfix: APPLYMODE_ALWAYS didnt work with varmanwidgets_entry
 - created basic configfile handler functions (configfile.c/configfile.h)
 - implemented saving and loading functions for varman variables
 - adapted main.c to call save function on exit
 - bugfix: isotracks no more contain their own directory informations.
   This was unnecessary from the beginning and was responsible for 
   isotracks not accepting directory changed if preferences setup
   preferences entry changed due to this fact: $path got replaced by
   fsedit_destpath. Calling syntax for isotrack_create changed,
   adapted callers accordingly...
17.05.1999
 - added cdda2wav call to preferences
 - added varman_replacestringbyfloat in varman.c for convenience reasons 
   (used by audiotrack.c to insert the current tracknumber)
 - changed audiotrack client call to use setup preferences
 - changed cdromlow.c to meet setup requirements in determining tracksize
   (should be become obsolete soon,as tracksize will be determined by 
   Gnome Toaster itself in the future)
 - introduced a simple list of cdrom drives,changing this one dynamically
   must be implemented by using callbacks again
 - implemented automatic updating of the cd drive list on configuration 
   changes
22.05.1999
 - replaced dirty cdda2wav calls in cdromlow.c by direct ioctl()s to the
   cdrom device. This speeds up the procedure of determining the cdrom
   geometry dramatically
 - introduced cddb readout in cdromlow.c,unused yet
 - display cddb code in tracklist
 - removed some varman var concerning the now obsolete cdda2wav tracksize call
 - bugfix: cdromlow_tracks returned one track when no cd was present,
   this is now fixed by checking wether the toc header could be read 
   successfully
 - removed tracks_destroy() because this was a way to really get gnometoaster
   into trouble. The right to decide about the further fate of a track is now
   in the solely in the hands of tracks_claim/tracks_unclaim.
   clients do register if the intend to use the track. the track is disposed
   when the last user calls unclaim().
 - implemented claim()/unclaim() support wherever this is possible by now
   (it isnt in cdsource.c as there is currently now place to put the
   unclaim()-part)
 - introduced #define DEBUG;if enabled,debug messages are cast to stdout
 - bugfix:do not use any of the struct entries in isotrack_tracksize 
   for storing process informations as those fields might already be used 
   by an open reading process
23.05.1999   
 - use claim/unclaim in streams.c
 - bugfix: streams did unclaim the last track whenever unregistering a track
 - moved all cdrom drive handling functions from cdsource.c into cddrives.c,
   leaving only the display and user interface functions in cdsource.c.
   This should help getting some structure into the source and,most
   importantly,prepares the source for the introduction of cd change
   detection functionality (which should be easy now)
 - introduced cd change detection using cddb code and 1000ms timeout
 - moved the streams_register() call for cdrom tracks to cdsource.c into
   the tracklist builder (thus keep a copy of the tracks even if the
   cd got changed in the meantime along with the toc of the cd currently
   displayed)
 - implemented cddb to cdrom lookup as a requirement of the advance track
   referencing to be introduced into audiotrack.c and datatrack.c
 - bugfix: return zero for cddb code if theres no cd in the drive   
 - bugfix: disable disk change detection during write/clear
24.05.1999
 - bugfix: audiotrack.c got the wrong cddb number because of a crippled 
   cdromlow_cddbnumber() call without arguments => stream identifier for
   audiotracks was no longer unique -> system crash after 2 or three
   registering procedures for the cdsource tracks.
 - file ./dir.cache is now ~/.gtoaster.dircache,which is far more appropriate
 - updated installation documentation
 - return "" in varman_xxx_copy functions if varman_xxx returned NULL 
   (=entry not found)
 - replaced enum tracktype definition in tracks.h by the string as it is given
   directly to cdrecord,changed cdrecord.c accordingly,rest should be covered
   by the macro definitions introduced in tracks.h
 - implemented preliminary filetype recognition,displaying correct tracktype
   on drop. Conversion handler is currently ignored though
 - changed piping.c to support already open input pipes. this feature is used
   to pipe files to their conversion routines.
   adapted the rest of Gnometoaster to force the old behavior of creating an
   input pipe by submitting -1 as inpipe number
 - completed preliminary wave file support for track editor. This is not the
   final thing yet but better than nothing
 - bugfix: make a local copy of string containing tracktype in tracks_create
   and free it in tracks_destroy.
 - changed default datacopydlg size to 320x200
 - disable cd change detection during cd accesses (reading audio/data)
25.05.1999 
 - Makefile now uses gtk-config to determine the correct locations of the
   gtk libraries and header files. This should solve a few problems for
   several people who had to edit the Makefile previously.
 - added "-eject" to the default cdrecord calls for fixate and cdrw clear.
   This should be pretty useful. Remember,this only affects the defaults
   which are generally overwritten by an existing ~/.gtoasterrc file.
   If this file already exists,consider either adapting it to the new 
   calling syntax or deleting it in which case youll have to reconfigure
   Gnometoaster.
 - removed -eject from the default cdrecord calls as this specific feature of
   cdrecord behaved a bit odd by ejecting the cd at the beginning and 
   then exiting without a comment. So I introduced a second cdrecord call
   that does the ejection after the actual cd access. Added control widget
   to enable/disable ejection,introduced a widget to edit the command line
   for ejecting a cd.
 - bugfix: if output of cdda2wav was too big we had a pipe overflow again,
   which made cdda2wav exit immediately without reading the track.
   stderr is now redirected to /dev/zero which is the general concept to solve
   such a problem at the moment. Added DEBUG feature however,writing all
   stderr output onto the recording console of Gnome Toaster.
 - did the same procedure for all piping calls of isotrack.c,which was another
   potential bug source in that matter.
 - did some initial work on Gnome Toasters documentation (using sgml).
 - added Makefile for Documentation
26.05.1999
 - did some work on the Documentation
 - added little2bigEndian conversion to the sox call as apparently sox
   thinks that cd digital audio is little endian,which is wrong.
   Dont know why the wav writer did work yesterday,though. Probably
   either cdda2wav or cdrecord detected the wrong endianness and converted
   the data on the fly. This is most annoying...
28.05.1999
 - reimplemented stream handling avoiding a possible point of unexpected
   behavior when a cd changed from one drive to the other because streams
   couldnt be adressed uniquely in that situation. 
   the new stream adressing scheme also detects streams coming from other
   instances of Gnometoaster and reacts with an appropriate message in that
   case. Later this could be the point where a system-whide interchange
   protocol for streams could set in.
 - bugfix: let libc decide about a filename for a temporary file.
   this is way of cool and avoids a situation where you wanted to have
   the same audiotracks twice and then removed one of those tracks,deleting
   the cache of the second one as well (this situation can,however,not be
   provocated at the moment as you cant remove tracks from the tracklist yet)
 - reimplemented cdromlow_datatracksize() reading toc instead of recursive
   guessing which was kind of an emergency solution when i realized that
   detecting tracksize using a lseek to the end of /dev/cdrom didnt work
 - count displayed tracknumber when writing from 1. Internally the first track
   in the tracklist is still track 0 though.
29.05.1999
 - Gnometoaster now also handles the output pipe with gdk to ensure
   frequent display updates.
 - update progress bar every two seconds only in datacpydlg.c
 - changed update interval to one second
 - deactivate either input or output depending on what is the next logical
   step -> another try to make gtk update its display during the precaching
   phase (did not help,though. Likely to be undone in the future...)
31.05.1999
 - introduced a list of possible tracktypes to tracks.c
 - created a function to build a GList out of string arrays terminated with
   NULL in helpings.c
 - created the final file2tracktype database in filetypes.c
01.06.1999
 - implemented removehandler functions for the preferences buttons.
   necessary for unregistering filetype declarations.
 - finished work on the file2tracktype database and its setup.
   Still missing: save routines.Database is currently not used.
 - removed stdfiletrack_init() in favour of filetypes_init().
   Were getting serious now about the filetype database
 - added a default filetype registry entry hopping in whenever a suffix
   couldnt be mapped to a registry entry.
 - set up a piping call to a handler function instead of a handler command
   in piping.c this will be used to implement little->bigEndian conversion.
 - implemented on-the-fly little->big endian conversion.This should now make
   mpg123 work directly to write mp3 files.
 - bugfix: do not let info->suffix point to temporary string in stdfiletrack.c  
02.06.1999
 - send a SIGKILL to converter and filter on close() in stdfiletrack.c
 - do a #define DEBUG to datacpydlg.c and the dialog box is no more modal.
 - in debug mode,write stderr of the byteswap process to rterm console
 - Gnometoaster now uses autoconfig and automake. [Chris]
 - changed piping_create_function to give the client functions the new
   standard input/output/error as argument while filedescriptors
   0,1 and 2 remain at their original values.
 - created piping_create_getoutput in piping.c to get the output of a
   specific program call in a single string or as it is a data buffer.
   Whats nice for bash scripts should be nice for Gnometoaster,too :-)
   (this function will be used for tracksize detection in stdfiletrack.c)
 - rewrote commandline parser for piping_create() to allow arguments
   containing spaces.
 - implemented function to get a specific line from a longer output stored in
   a buffer in helpings.c
 - implemented function to parse numbers from a string (will be used 
   for the detectsize functions later)
 - implemented some basic Gnome Support,detecting the presence of Gnome and
   creating a few menu structures in a Gnome-compatible way. This makes
   Gnome look a lot better [Chris]
 - introduced a Gnome Toolbar (toolbar.c/toolbar.h)
   for easy access to the most wanted functions (Gnome-only).
   Patched record.c to switch to the record notepad entry whenever the record
   or clear_disc function is called. Added Clear Disc and Record to the 
   Toolbar. [Chris]
 - made the button for writing multisession support insensitive 
   (developing real ms compatibility will take its time...) [Chris]
04.06.1999
 - enlarged filename and trackname field within clists.
 - streamid field is now hidden in tracklists
 - bugfix: call disconnect for stdfiletrack.c byteswap debugging stream
   only if byteswap was really active.
 - added debugging infos to the selectlist code to investigate into a problem
   avoiding a selection of files to be deleted sporadically.
   Since then,the problem never occurred again,though.
 - bugfix: corrected little bug in piping_getoutput() where stderr got read
   only when stdout was done.
 - bugfix: helpings_getlinestart() got confused about empty lines
 - bugfix: check if requested line is present in helpings_getlinestart() and
   return an error if not.
 - bring Preferences Window to the top when Edit/preferences is selected
   in menufunc.c [Chris]
 - bugfix: wait for the client to finish in piping_create_getoutput() to
   avoid the clients becoming Zombies
 - bugfix: fixed the mkhybrid and du call in preferences setup. as it didnt
   use spaces Gnometoaster would have gotten into problems once
   fsedit_destpath would have contained a directory name with a space in it.
   right now,fsedit_destpath may not contain quotation marks though. 
   Well need a function to replace them by \".
 - bugfix: avoid crash when directory is dropped onto the track editor.
 - bugfix: when an escape character (\) is found in a call by piping_create
   it did not only make a special character ineffective but also ignored
   it (didnt write it into the output). This is now fixed,so escape chars
   should now get processed correctly.
 - bugfix: check if a pipe really is open before calling close() for it in 
   piping_create().
 - bugfix: close cstderr in byteswap routine. Close the other side of the
   pipe as well.
 - with this being done properly reintroduced proper _exit() call to 
   byteswap,which made all those Zombies disappear.
   So one of the major problems of the last few days seems to be finally
   fixed now.
05.06.1999
 - print error message if pipe couldnt be created in piping.c
 - bugfix: piping_create() would have crashed Gnometoaster the same way 
   byteswap in stdfile.c did: by exiting a child process via exit().
   it does now use _exit() just as byteswap does.
 - replaced exit() call after piping_create_function() by _exit() out of
   the same reasons
07.06.1999
 - implemented titles for the various CLists used in here... some
   "incompatibilities" with the ScrolledWindow show up, though. Titles should
   remain disabled for the first time i think :-/ [Chris]
 - Fixed that incompatibility... gtk_scrolled_window knows about
   gtk_container_add - the clist handles scrolling by itself now. [Chris]
 - GTK_Version: made main.c export a "menubardock" widget, menubar.c puts
   it's (GTK-style) menubar into this widget - now "void menubar_create()"
   ist very similar for the GTK and GNOME Version. [Chris]
 - introduced -1 as special significant_column value within selectlist.c
   to address the hidden data pointer field of a clist from the drag and drop
   routines
 - use the above declaration to store the streamid within the gpointer data
   field instead of a real visible clist field. Hiding "visible" clist rows
   seems to be impossible by definition,only apparently gtk has a bug there
   until you set the width value yourself or use a title bar for the clist.
   Anyway,we cant use bugs for our own purpose,can we ?
 - added extensive debugging code to tracklist.c to find a bug that makes
   Gnometoaster crash just when it is about to preread a new track.
   Its probably some memory leak introduced by either the titlebar work
   or the gpointer dnd handler.
 - bugfix: free args[] in piping_create.
 - center view of the directory flag in filelist.c
 - bugfix: do not claim() tracks twice in streams_getstreamid().
 - bugfix: do allocate stringsize + 1 (!) for the trailing zero in 
   tracks_create()
 - bugfix: streams_getstreambyid() had the same problem.
08.06.1999
 - do not start precaching in drop handler,set zero-timeout instead again
 - introduced a warning if varman_getvar_copy had to create a copy of a string
   longer than VARMAN_MAXSTRINGSIZE
 - bugfix: cant see why a tmp==(char*)malloc(255); should do what it is 
   expected to. in other words: a f*cking typo kept me busy for almost 
   two days :-(
 - bugfix: found another occurrence of tmp==(char*)malloc(255);
   probably due to some block copy to shorten work.
   Occurrences were: varman_replacestring_byfloat() and
   varman_replacevarbyvalue_float().
 - bugfix: changed minor bug in fileman_selectionhandler() where a leading
   ASCII 10 was not treated correctly.
 - bugfix: do not refer to additional trackinfo of the already unclaimed
   precachetrack structure in precachetrack_stopcb().
 - bugfix: unclaim() the client track if a precaching track is being
   destroyed. Changed stopcb to specifically claim() the client for the
   caller.
 - bugfix: do not initialize new filetype definition with "none",use ""
   instead which is interpreted as none by stdfiletrack.c
 - bugfix: stop the gtk_timeout by returning 0 in its handler function
   when precaching is about to be processed in trackedit.c
 - bugfix: dropping a file without a suffix onto the track editor made
   gnometoaster crash in filetypes.c This case is managed in stdfiletrack.c
   now by setting the files suffix to "".
09.06.1999
 - bugfix: close the intermediate pipes of stdfiletrack.c within the main
   thread so that the client is the only one having them open from that
   moment on.
 - do not create pipe to /dev/zero for main process when NULL is
   passed as a pipe pointer to piping_create(),so explicitly closing them 
   again is no longer necessary.
 - adapted piping_create_func() as well.
 - bugfix: do not close(-1) in piping_create_func();
   All that work about those pipes seems to have finally killed that bug
   about streams failing to send data.
 - cleaned up piping.c,reducing the number of fork() calls to a single one
   in piping_create_function().
 - test the pipes if they could be opened correctly before theyre connected
   to the client programs stdin,stdout and stderr in
   piping_create_callback().
10.06.1999
 - worked over cdromlow.c to make the routines use the same codebase as much 
   as possible,avoiding two routines containing the same lines of source.
 - bugfix: check if opening the cdrom drive went ok and do not close() 
   the filedescriptor used for that purpose if this wasn the case.
 - bugfix: introduced fd sanity check before all close() calls within
   Gnome Toaster
 - disable media change detection during a precaching cycle
 - bugfix: restored old method of precaching where during the precachephase
   io monitoring was done to the input stream only. This may cause certain
   failures in updating the display again,if the source drive is faster than
   the destination,but it seems to fix those hangs occurring during the
   precaching phase
 - set standard buffer size to 16384  
 - changed callback structure for trackedit.c (trackdrop)
 - preferences dialog catches DELETE_EVENT now. (fixes SegFault when the
   dialog had been destroyed and the user requested it to reappear) [Chris]
11.06.1999
 - set the initial timeout for precaching on trackdrop to 0.
   The timeouts of all the following tracks have been set to 500
   (0.5 seconds). This should still be enough for Gtk to come to terms
   with its pending events.
 - changed cdrecord default from "/usr/bin/cdrecord" to "cdrecord".
 - disabled precaching for stdfiletrack.c
 - introduced optional scsiid field for cdrom drive definition.
   This field can be used within the cdda2wav call as an alternative way
   to address the cdrom drive. The optional scsi id is given within cdrom
   drives setup in brackets behind the device special file.
   If no id is given,using the $scsiid var within the cdda2wav call will 
   result in an empty string
 - introduced function cddrives_getrombydevicename();
15.06.1999
 - added field "sizealg" to filetype list. Using this entry,the user can 
   specify the way informations about a certain file are used to calculate
   the resulting track size when a file is dropped on trackedit.
 - enlarged the preferences dialog to fit the new filetype entry length.
 - introduced calc.c/calc.h to the project. Adapted calc. to meet the
   requirements of Gnometoaster,esp. changing the calls to varman to the
   new plain c syntax.
 - prepared calc.c to handle functions with multiple arguments
 - designed a concept for dynamic expression management in calc.h
 - implemented dynamic expression management in calc.c using GLists
 - use calc.c to calculate track size,introduced getpos(x,y) function
   in stdfiletrack.c
 - stdfiletrack.c does now cache the tracksize and result the cached value
   only instead of calling the calc routine whenever the tracksize is
   requested
 - preinstalled example configuration featuring mp3info to detect mp3->audio
   tracksize
16.06.1999
 - bugfix: initialize readresult in piping_create_getoutput().
 - added -Wall to compile parameters
 - bugfix: initialize trackentry with non-zero value in cdsource.c
   if trackentry would have been zero accidentally,the whole function
   might have done unexpected things
 - bugfix: helpings.c nmbstart did not get initialized  
 - removed warning conditions displayed with -Wall throughout the source.  
 - introduced saving concept for config files in configfile.c
   installed store-callback for global_defs utilizing the new storage concept.
 - prevent filetypes_getfiletypehandler from ending up in a recursive loop
   when "default" cannot be found.This has been  an impossible event until now.
   Now,this routine can be used to check for the presence of a default handler
   within filetypes_init().
 - store filetype definitions in filetypes.c and load them from the config-
   file if available. Otherwise,install default handlers.
 - bugfix: handle readcount of stderr and stdout separately in 
   piping_create_getoutput(). This fixes the output failures occurring
   sometimes...
18.06.1999
 - removed the docking widget concept in main.c so that the gtk menubar
   does now connect directly to surroundings again. surroundings is 
   exported by main.c for exactly that purpose. This step imho improves the
   readability of the source and avoids the necessity to create a new 
   docking widget for every bar and item we create. This has been some
   preparing work for the introduction of the fillstate widget which will 
   connect to trackedit to determine the fillstate of the current cd.
 - created fillstate widget in fillstate.c
 - introduced callbacks in trackedit.c to inform interested parts of the
   program about changes of the tracklist.
 - connected fillstate widget to trackedit update callbacklist.
 - now all sizes (tracksize, filesize) are formated, every 3 digits will be
   seperated by a '.' [Chris] 
19.06.1999
 - made fillstate widget sensitive for changes within the isotrack file
   structure. So editing the filesystem with fsedit finally has an effect
   to the fillstate display now.Introduced a callback list in tracks.h
   and fsedit.c for that purpose
 - introduced updatehandler.c,which contains some generic handler functions
   and definitions for callbacks (signals).Those functions are now used in 
   trackedit.c,fsedit.c,isotrack.c The proprietary functions provided by
   the mentioned parts of Gnometoaster have been removed.
 - add isotrack to tracklist automatically if the cd filesystem is edited
   and the tracklist is empty
 - bugfix: call trackedit_updatehandlers when isotrack gets auto-added
20.06.1999
 - changed preferences default entry for cddrives_drives.
 - always add default filetype on top of the filetype list.
 - defined header menusys.h with some basic definitions for generic menu
   support. This is where the generic popup menu definition will go and
   this will be the abstraction level deciding between 
   gnome- and gtk-style menus,so for all high level functions like menubar.c
   this will not matter any more...
21.06.1999
 - completed menusys abstraction layer. It is now used by Gnometoasters
   menubar and works fine with both the gtk and the gnome version
22.06.1999
 - implemented standard popup menu management functions. Adapted selectlist.c,
   filelist.c,getdir.c to use those functions,adapted source.c,cdsource.c,
   internal.c,fsedit.c,trackedit.c to the new syntax.
   This way,new popup menu entries can now be created without having 
   to modify call structures in five different places.
   The new popup handler also uses Gnome-style popups where available
24.06.1999
 - bugfix: Gnometoaster got a stringlength overflow when deleting too 
   a long file tree was requested. Now,Gnometoaster catches this event
   and prints an error message,leaving the directory as it is and telling
   the user to delete it by hand.This is not the ultimate best way,
   I am sure,but...
 - code cleanup: introduced constant MAXPATHLENGTH replacing all the proprie-
   tary stringlength definitions of all those functions working with paths
 - bugfix: free the mkdir_info structure in fileman.c after the callback
   got called.
 - added function dirlow_islink(filename) to dirlow.c
 - introduced linkcount.c containing handling functions for a symbolic
   link counter that will be implemented in fileman.c.
 - implemented link counter in fileman.c to avoid recursive loops occurring
   when a symlink references one of its parent directories.
 - bugfix: use lstat instead of stat in dirlow_islink(). ARGH!
 - introduced unique inode id and its handlers in dirlow.c
   with this structure,we should be able to identify a symlink uniquely.
 - added security check within dirlow_removedir() testing wether the
   directory to be removed is as symlink. In that case,
   remove the symlink only and print a warning message as this situation
   should never occur ...
 - bugfix: dirlow.c dirlow_subdirentries returned -1 if directory couldnt
   be read. -1 is,however,reserved for NOTADIRECTORY in dircache.c
   This caused directories that were not accessible by the user running
   Gnometoaster to appear as normal files...
 - return 0 for fileman_adddirectory if source directory couldnt be read
 - bugfix: Gnometoaster did not compile with libc versions without a
   getopt() implementation. cheap commandline parsing as Gnometoaster
   does it can also be achieved by less bloated means.
 - removed commandline parsing completely as it did not work with the
   Gnomeversion anyway. All parameters supported by Gnome can be used,though.
27.06.1999
 - introduced a flag to selectlist_info indicating wether a list is currently
   waiting for a drag_finish event.
   This can be used to determine wether an item is just to be shifted
   to another location within the same list.
 - selectlist_info does now also store the line numbers of selected lines
   (theyre stored directly in a GLists data field)
28.06.1999
 - changed name of "Filesystem (ISO)" to "Gnometoaster-Filesystem (ISO)"
   as a reaction to a user request. This is intended to make Gnometoaster
   more self-explanatory.
30.06.1999
 - bugfix: the Gtk-Version of Gnometoaster was broken due to a not included
   header file in dirlow.h,gnome.h includes that header automatically,thats
   why i didnt realize.
01.07.1999
 - bugfix: corrected the archive creation process sos the package should now
   work properly for the debian people.
04.07.1999
 - bugfix: make "surroundings" visible before setting it as content widget
   in the gnome-version. This probably doesnt fix that alpha users problem,
   though.
06.07.1999
 - implemented some basic stuff in tracklist.c
08.07.1999
 - added gtoaster.spec as some basic attempt to support rpm users with
   building rpm packages
10.08.1999
 - using tracklist.c for trackedits tracklist now. Probably still plenty of
   bugs left. Rewrote precachetrack to make it more natural in handling
   tracks (it does now claim() and unclaim() tracks in a more sane way).
   adapted record.c and main.c to meet the new calling syntax accessing
   the trackeditors tracklist.Prepared everything for some proper edit
   functions. A few problems yet need to be solved to get track rearranging
   and drop at position working properly.
12.08.1999
 - removed unnecessary update call in trackedit.c
 - bugfix: set entry count to zero when clearing the tracklist
 - removed yet another unnecessary update call in trackedit.c 
 - bugfix: specify access permissions for precache data (0600)
 - added popup menu to trackeditor,making it possible to delete tracks
   from the list
13.08.1999
 - changed selectlist dropcallback prototype to receive trackposition
 - implemented drop at position for tracklist
 - implemented track rearranging in tracklist
 - bugfix: check if there is at least one track selected before
   calling tracklist_removetrack
16.08.1999
 - bugfix: invalidate all selections if an internal_drop is executed in 
   tracklist.c
 - bugfix: catch -1 as internal_drop destination and append track to the
   list.
 - bugfix: prevent crash if selectlist was empty on internal_drop
 - bugfix: delete selection informations whenever the tracklist changes.
17.08.1999
 - updated documentation (FAQ,Endianness)
 - bugfix: depending on the version you use,sox has different ideas of 
   what Endianness streamtype .cdr has. thus switched to directly telling
   sox what format the destination stream is required to be without relying
   on the .cdr default type.
 - bugfix: extended max_args to a more adequate number. commands can now
   be called with up to 50 Arguments by piping_create
24.08.1999
 - added downbox to the layout structures defined in main.c enabling
   fillstate bar and upcoming preview player to share the same horizontal
   space on the bottom of the gnometoaster window
 - defined basic preview player structures,implemented drop handler and
   several function stubs for the player.
 - implemented autoconf esd detect functions. HAVE_ESD is defined in config.h
   now if the enlightenment sound daemon libs could be detected on the system
   and esd support hasnt been disabled explicitly.
25.08.1999
 - implemented handler functions for audio subsystem
 - implemented preliminary oss driver
 - extended piping_create_function to support open output and error descriptors
   (*out!=-1,*err!=-1),adapted source code accordingly
 - bugfix: initialize outp,errp with -1 in piping_create_getoutput
26.08.1999
 - check wether tracktype is "audio" before piping it to the soundcard
 - stop player when end of a track is reached
 - set disc change detect interval from 1 to 5 seconds
 - bugfix: be a bit more careful about what is dropped to the preview player,
   check if a valid track could be determined instead of blindly initiating
   the player sequence
 - bugfix: do not close filedescriptors explicitly after a pipe call as this
   is already done by the pipe process itself.
 - bugfix: if sound device is in use,return -1 in audio_oss.c
 - bugfix: do not even claim() track if it is invalid in preview.c
 - ignore case when searching a filter by extension in filetypes.c
 - changed default cdda2wav call to prevent cdda2wav from dropping its
   info file shit wherever gtoaster happens to be run from
27.08.1999
 - return dummy driver if no driver with the given name could be found in 
   audio.c
 - defined and implemented esd sound driver
 - set esd driver as default in preferences.c if gnometoaster was compiled
   with esd support. Otherwise,make OSS the default.
 - bugfix: return -1 if /dev/dsp couldnt be opened in audio_oss.c
 - bugfix: return -1 if esd connection couldnt be established in audio_esd.c
 - bugfix: check wether audio stream could be established successfully in 
   preview.c and stop playing process in case of trouble.
 - defined seconds to "hours:minutes seconds" representation converter in
   helpings.c
 - datacpydlg.c does now use helpings_secs2hms() to display elapsed and
   remaining time during a data copy process
28.08.1999
 - installed double-click handler for files containing audio -> they get
   played by the preview player now if the user double-clicks on them.
 - bugfix: make a local copy of selection string before starting to parse it
   (which means writing to it).
29.08.1999
 - bugfix: allow button 1 doubleclicks only in selectlist.c 
30.08.1999
 - introduced varmanwidgets_combo widget to meet the requirements of the
   upcoming sound system setup
 - implemented selection combo box for audio driver,providing a list of
   available drivers as a popdown menu.
 - bugfix: removed warning occurring when a directory of a newly mounted
   partition was changed into from the filelist (getdir.c)
31.08.1999
 - bugfix: do not allow a recording process to be initiated while the
   preview player is running as this almost certainly causes a loss of
   streaming at latest when the track is done and gnometoaster is waiting
   for the input driver to terminate.
01.09.1999
 - rewrote selectlist selection code in selectlist.c to enable multiple
   deletes in tracklist.c and effectively to clean up the code a bit as
   it was maintaining two separate selection lists up until now.
   Changed accesses to the selection list accordingly.
 - bugfix: implemented advanced doubleclick handler for fsedit to play audio
   files through media player
 - bugfix: test if row is already selected before inserting it into the
   list of selected rows in selectlist.c
02.09.1999
 - implemented preliminary oss detection by checking for the presence
   of <linux/soundcard.h> in the configure script.
   We'll have to extend this to support oss on freeBsd etc. in future 
   versions...
03.09.1999
 - implemented multiple files delete.introduced selectlist_insert/remove 
   as wrapper functions to the clist_insert/remove functions keeping track
   of selections in selectlist_info.
05.09.1999
 - replaced icons for fsedit,trackedit,record by Gnome Standard Icons
   [Peter J Higson <peterh@cwcom.net>]
 - resized Icons to 32x32 to make gnometoaster show a proper layout at
   its base window size of 640x480
 - introduced varman_getvar_value(),returning float value instead of string
 - implemented varmanwidgets_spin_xx for a spinbutton widget connected to
   a varman var.
 - redesigned recording section widget
 - implemented recording speed control bound to varman var "rec_speed",
   which can now be used within all cdrecord calls.
 - introduced fixating switch
08.09.1999
 - use tracklist functions in internal.c and cdsource.c
 - ignore precaching flag when isotrack is added automatically.
   The precaching request gets processed as soon as the user starts to 
   work with the tracklist.
 - allow var $file within filter calls which is needed for "filters"
   that do not support taking their data from stdin.
09.09.1999
 - introduced helpings_listcomp to match a word to a list of words separated
   by a special identifier.
 - use helpings_listcomp in tracktypes.c to match file filters by extension,
   thus allowing multiple extensions leading to a single filter entry
   (e.g. .mod .s3m ... all running the mikmod filter)
10.09.1999
 - introduced icons describing the tracktype of a tracklist entry
 - added track length in h/m/s to the standard tracklist display
 - implemented generic doubleclick handler for tracklists,calling the preview
   player with the selected track
14.09.1999
 - added precache entry to struct and display in filetypes.h/c
 - rewrote filetypes config retrieval system
16.09.1999
 - completed precache flag configuration in filetypes.h/c
 - use precacheflag for file->track in stdfiletrack.c
18.09.1999
 - switched to different mp3info version (should be more common,it's also
   part of the Debian Distrib)
 - bugfix: sox calls in popdown list and in default config should be the same
 - introduced logo in about box. yet path lacks adaption.
20.09.1999
 - introduced helpings_locate to determine the right location of a file
   out of a list of possible locations
 - use helpings_locate to load gnometoaster's about-logo
 - implemented new gtoaster logo scheme,no longer utilizing Gnome-About.
   From now on,both the gtk and gnome version show a gtkdialog with
   the new gnometoaster about logo.
 - use gnome stock buttons in some places if compiled with Gnome support
26.09.1999
 - precache mode for audio tracks can now be set within the audiotrack
   setup
 - introduced global set of tooltips in main.c and defined a convenience
   macro to bind a tooltip to a widget
 - defined tooltips for preview button and precache flag in filetypes registry
 - fixed warning while compiling audio.c
 - bugfix: giving non-zero values as arg 3 and 4 to 
   gtk_paned_compute_position() fixes some floating point exception 
   problem reported by several people.
28.09.1999
 - enabled multisession button writing a ms compatible toc
 - installed version numbering var and "fresh_install" flag.
 - modified varman_loaddatabase to return a status indicator
 - introduced some advisory box when running gnometoaster for the first time.
29.09.1999
 - bugfix: made the gtk version work again
 - defined macros making configfile update handling easier in configupdate.c
 - introduced configfile update watch for multisession var in trackwrite and
   fixate call.
30.09.1999
 - exit immediately if a configfile for a newer version of gnometoaster
   was found.
02.10.1999
 - ask wether or not to exit if a configfile for a newer version
   was found. Introduced flag preferences_saveonexit,which is set to 0 in
   case the user decides to exit gnometoaster,hence preventing
   preferences_save() (a new wrapper function for configfile_save())
   from performing it's work.
 - modified varman.c/h to return a pointer to user data within it's
   varman_varchanged callback.
 - modified varman_widgets to check for externally changed var values.
 - adapted the rest of the program accordingly
 - set display position of entry widgets to the first character [chris]
07.10.1999
 - bugfix: hand NULL to libesd open stream call instead of "" for 
   host and name
09.10.1999
 - display progress in percent in title of datacopy dialog (thus 
   in the task list of most window managers and,of course,the gnome panel)
 - introduced dummy write option,installed update handler for changed
   configuration
 - updated default config entries for dummy write
10.10.1999
 - created a nice set of actual icons for the preview player instead of the
   gtk_label used until now.
 - moved default config entries to defaultentries.h - thus all config entries
   can now be modified centrally.
18.10.1999
 - keep datacopydlg over delete event (if window manager's close button is
   pressed)
 - implemented database for layout settings => Gnometoaster can now keep 
   the settings for gtk_widgets (size,location) over a session.
   (layoutconfig.c/layoutconfig.h,modified:main.c)
19.10.1999
 - changed layout settings interface structure. All layout handling on the
   caller's side is now done by calling layoutconfig_widget_show/hide instead
   of gtk_widget_show() and gtk_widget_hide()
   additionally,gtk_widget_hide() has to be called before destroying a widget
 - made datacopydialog window remember it's state
 ------------------------ Release Oct. 19th -------------------------------
 - use mkisofs to create iso track
21.10.1999
 - bugfix: avoid a segfault in layoutconfig.c if config file doesn't exist
 ------------------------ Release Oct. 21st -------------------------------
23.10.1999
 - introduction of a new Progress Widget for the Record Progress (keeps
   track of CD Progress as well as of Track Progress) [chris]
24.10.1999
 - introduced versatile progress dialog,replacing datacopydlg.c and 
   recorddlg.c
 - implemented progress dialogs for cd blanking and fixating.
   Both use a guessing alghorithm to give the user a rough idea of 
   the operation's progress
26.10.1999
 - implemented precaching before write for iso track images
 - introduced switch deciding wether or not to precache iso tracks
   before writing them on cd.
 - bugfix: if more data are being transferred than estimated,
   display 00:00:00 for remaining time
27.10.1999
 - bugfix: prevent SIGPIPE from stopping gnometoaster.
   SIGPIPE is irrelevant because of Gnometoaster's
   client state check routines.
30.10.1999
 - added preferences entry for mount/umount command calls to be used
   within the multisession routines
 - added preferences entry specifying mountpoint of cd recording device
   for the same purpose
01.11.1999
 - created menu/toolbar entry
   for importing a session off a disc
 - defined virtualdir structures and functions 
 - changed filelist.c to display virtual dir structures if present
 - created multisession.c featuring multisession_import()
 - generalized fileman.c to be a generic recursive dir structure processor
   (currently,only the addxxx routines have been modified,
   cause that's all we need at the moment)
 - finished multisession_import()
 - added several lines of debugging text
 - bugfix: fixed memory leak in virtualdir_finddir()
 - display old session in fsedit
 - display files of the last session in a different color
 - implemented actual ms writing calls
 - always precache isotrack when in multisession mode,
   set tooltip explaining the situation
02.11.1999
 - bugfix: trackedit_doprereading() switched cd change detection
   back on after precaching but before recording process even started.
   -> Gnometoaster got stuck in scsi driver when cd change detect got
   called for the first time.
 - introduced delete button for fsedit.   
 - delete fsedit area on exit
 - bugfix: mark multisession root as not present when it is deleted
 - bugfix: update precaching flags of all audiotracks when switch in 
   preferences setup changes.
 - bugfix: do not turn on cd change detection at audiotrack_close()
   and datatrack_close()
 - bugfix: disable cd drive change detect if preview player is active.
   --> solve this on a per drive basis as soon as possible.
 ------------------------ Release Nov. 2nd ---------------------------------
04.11.1999
 - bugfix: take care of the maximum selection size in selectlist.c
07.11.1999
 - use pthreads if available to decouple cd change detection from the 
   main program. This prevents some cdrom drives from stopping gnometoaster
   on a regular basis if there's no cd in the drive.
   Also,preview player is no longer disturbed by cd changes this way.
   However,if pthreads is not available on your system,you'll still have
   the old-style cd change detection
 - send SIGTERM to filetype converter as a preliminary solution to a
   problem where mpg123 needs a few seconds to exit and keeps gtoaster
   from continuing it's work by that.
   (see TODO list for details)
 - changed the way the media update enabled flag is handled,using a counter
   now that is decreased whenever a process wants the media check to be
   disabled and increased once this particular process doesn't care anymore.
   Media check is performed when counter is positive only.
 - added dummy popupmenu entry in fsedit for selecting boot image
10.11.1999
 - wait for media update process to finish before starting to write/blank a cd
 - introduced vars defining bootimage and wether or not to make a cd bootable,
   including their respective edit widgets in the record panel where they can
   be easily accessed.
 - defined some kind of interaction between the above-mentioned widgets to
   making the "make bootable" checkbox insensitive when no valid bootimage
   has been specified.
15.11.1999
 - bugfix: force mpg123 to produce 44100kHz output in filetypes setup.
   changed defaultcall in defaulthandlers.h
20.11.1999
 - implemented config file update handler fixing the above-mentioned bug
   automatically
25.11.1999
 - prepared for internationalization,created int.h to be included
   wherever translations are needed,modified main.c to initialize
   gettext when running the gtk-only version
 - created support script
   automatically updating .po file if new translatables habe been added
 - began marking strings as translatable
26.11.1999
 - completed El Torito Support
27.11.1999
 - changed selectlist_info_create() code to create a local copy of the
   headings list in order to enable gettext() translation,which isn't
   preformed automatically by gtk
 - implemented proper semaphore handling code in sems.c and used the new
   functionality to make a failsafe implementation of the mediachange lock
 - bugfix: do not accept directories as bootimage
 ------------------------ Release Nov. 27th ---------------------------------
28.11.1999
 - added Japanese to the pool of available languages
29.11.1999
 - added Norwegian and French to the pool of available languages
 - patched Gnometoaster to sort file lists [Kjetil.Thuen@student.uib.no]
30.11.1999
 - added Finnish language support
 - bugfix: specify access permissions to semaphore set
 - bugfix: mark semaphores available on creation
 ------------------------ Release Nov. 30th ---------------------------------