1Changes from 2007-08-01 onwards: see SourceForge git repository.
2
32005-12-21  Russell Marks  <russell.marks@ntlworld.com>
4
5	* src/main.c (do_logo_invert): fixed previous "*ptr++=255-*ptr",
6	which was obviously not too clever.
7
82005-12-18  Russell Marks  <russell.marks@ntlworld.com>
9
10	* src/help.c (help_about): updated URL.
11
12	* src/logoconv.c: another missing string.h.
13
14	* src/resizepic.c: didn't include string.h previously, and should
15	have.
16
172005-09-21  Russell Marks  <russell.marks@ntlworld.com>
18
19	* src/readjpeg.c (read_jpeg_file): now supports YCCK/CMYK
20	colourspaces, as can be written by e.g. Photoshop. Thanks to
21	Michael Woerdehoff for pointing out the problem.
22
232004-12-15  Russell Marks  <russell.marks@ntlworld.com>
24
25	* src/readpng.c (read_png_file): bizarrely, I missed the
26	width/height limit on PNG before. :-( Added it now, thanks to
27	Ludwig Nussel for pointing this out.
28
292004-11-03  Russell Marks  <russell.marks@ntlworld.com>
30
31	* Added width/height limits to all native picture readers. This is
32	a crude (albeit effective) fix for heap overflow bugs - there may
33	yet be more subtle problems, but I can't really fix them until I
34	know they're there. :-) Thanks to Luke Macken for letting me know
35	about the heap overflow problems (in zgv). I suppose I should also
36	thank "infamous41md" for publishing the original advisory/exploit
37	(again for zgv), even if he didn't bother emailing me or anything.
38
392003-09-16  Russell Marks  <russell.marks@ntlworld.com>
40
41	* Version 0.8.
42
43	* src/help.c (help_about): now says what the program does. Which
44	is probably rather obvious, but what the heck. :-)
45
46	* src/main.c (viewer_expose): fixed long-standing bug with
47	interpolation, which could have resulted in segfaults (though it's
48	hard to say if it ever actually did).
49
50	* src/rcfile.c (usage_help): removed embedded LFs.
51
52	* src/readjpeg.c (get_exif_orientation): added support for the
53	Exif orientation tag (Exif in this context is a form of JPEG). If
54	you enable the "Use Exif Orientation" option in the viewer (or
55	`exif-orient' config/option), it'll compensate for the (e.g.)
56	digital camera's orientation when viewing, so pictures taken with
57	the camera side-on will display the way you would probably want
58	them to. However, since this differs from how most *other*
59	programs will see the files - which are, after all, carefully
60	constructed to be compatible with JFIF/JPEG files - and has the
61	potential to be extremely confusing if you don't know exactly
62	what's going on, it's not enabled by default. Thanks to Fraser
63	Wright for suggesting this feature.
64
652003-07-10  Russell Marks  <russell.marks@ntlworld.com>
66
67	* src/readpng.c (read_png_file): don't set background colour to
68	black for mono PNG files, where this may cause problems. This
69	change was ported from zgv; thanks to Morten Bo Johansen for
70	spotting it there.
71
722003-04-05  Russell Marks  <russell.marks@ntlworld.com>
73
74	* doc/makeman.awk: fixed some bugs which became apparent when run
75	with gawk 3.1.
76
772003-02-01  Russell Marks  <russell.marks@ntlworld.com>
78
79	* INSTALL: added report of MacOS X compile, from
80	krisa@subtend.net.
81
822002-08-22  Russell Marks  <russell.marks@ntlworld.com>
83
84	* src/main.c (selector_key_press): added 9/0 as yet another way of
85	doing file untag/tag. These are last-ditch alternatives for
86	keyboards where -/= don't make sense (some non-US/UK keyboards),
87	and where keypad -/+ aren't easily accessible (e.g. laptops).
88	Thanks to Szab�, Bal�zs for inspiring this one.
89
902002-07-25  Russell Marks  <russell.marks@ntlworld.com>
91
92	* src/main.c (main): added call to gtk_set_locale() which should
93	hopefully avoid problems when GTK+'s default font is set to
94	something which isn't ASCII-friendly. Thanks to Alexander Pohoyda
95	for this one.
96
972002-07-09  Russell Marks  <russell.marks@ntlworld.com>
98
99	* src/main.c (cb_hide_selector): stopped selector getting
100	permanently hidden if two middle-button presses were too close
101	together. Thanks to Jos� Luis Gonz�lez Gonz�lez for spotting this.
102
1032002-03-03  Russell Marks  <russell.marks@ntlworld.com>
104
105	* src/readgif.c (outputstring): broken GIFs could overrun a buffer
106	previously - fixed.
107
1082002-01-16  Russell Marks  <russell.marks@ntlworld.com>
109
110	* INSTALL: added IRIX success report. Thanks to Andreas Backhaus.
111
1122002-01-01  Russell Marks  <russell.marks@ntlworld.com>
113
114	* src/readjpeg.c (read_jpeg_file): fixed post-image corruption
115	bug, so it shouldn't segfault now. (!) Now it should ignore any
116	errors which come after we've got an image (based on the idea that
117	since we do *have* an image, we should display it). Thanks to
118	Aaron Brick for spotting this one.
119
1202001-10-24  Russell Marks  <russell.marks@ntlworld.com>
121
122	* INSTALL: added Solaris success report. Thanks to Sven Goldt for
123	that. [And to Steven Bankowitz, who also reported success.]
124
1252001-09-20  Russell Marks  <russell.marks@ntlworld.com>
126
127	* src/rcfile.c (usage_help): fixed typo.
128
1292001-04-10  Russell Marks  <russell.marks@ntlworld.com>
130
131	* Version 0.7.
132
133	* src/Makefile: whoops, `-lz' was missing. I usually got away
134	with this, but it did break in some cases (perhaps with Imlib
135	1.9.10?). Thanks to Gabor Z. Papp for pointing this out
136	(albeit, again, somewhat indirectly :-)).
137
138	* src/mkopts.awk: there isn't any reason I can't just use stdout
139	for error messages, so do that.
140
141	* src/updatetn.c (cb_update_tn): this'll be fun to explain. :-)
142	Ok... the non-recursive thumbnail update stops thumbnail reading
143	before doing the update (as does the recursive one, but never mind
144	that). Previously, if you pressed `u' soon enough after the
145	thumbnail-read had started, and only files a long way down in a
146	big directory needed new thumbnails, then you could be left with a
147	mostly-blank set of thumbnails onscreen for (say) a few seconds.
148	It now makes sure all thumbnails in the visible portion of the
149	list are read before it starts, rather like recursive update.
150
151	* src/backend.c: marking image as uncacheable seems to *very*
152	occasionally lead to a segfault (infrequently enough that I've
153	found this hard to track down), apparently due to unearthing a bug
154	in Imlib1's uncacheable-image code which is (I think) never
155	otherwise used. So we don't do that any more.
156
1572001-04-09  Russell Marks  <russell.marks@ntlworld.com>
158
159	* Added support for PRF (ported from zgv), which is basically a
160	kind of extrapolated version of my old mrf format - unlike mrf,
161	PRF supports greyscale and colour. Thanks to Brian Raiter for both
162	devising the format, and writing the reference implementation
163	readprf.c is heavily based on.
164
165	* src/mkopts.awk: now detects running under an old awk, and
166	complains about it with a pointer to config.mk.
167
1682001-03-01  Russell Marks  <russell.marks@ntlworld.com>
169
170	* src/main.c: toggling all tags is now possible, with Alt-o or
171	Tagging/Toggle All.
172
173	* src/main.c: you can now move to the next/previous tagged file
174	with `/' and `?' respectively (or equivalent menu options). When
175	used in the viewer, this also views the file.
176	(init_window): moved `Tag then Next' to new viewer `Tagging' menu.
177
178	* src/main.c: fix for redraw-related position problem. (In 0.6,
179	try going to the end of the selector's list, pressing `v', then
180	pressing `v' again - the row positioning is slightly wrong.)
181	(init_window): added `Open' to selector `File' menu, and
182	rearranged the menu slightly; moved tagging commands to `Tagging'
183	menu.
184
1852001-02-03  Russell Marks  <russell.marks@ntlworld.com>
186
187	* src/main.c (set_title): no longer includes the version number in
188	the window title, as you can get this from both `xzgv --version'
189	and About on either Help menu.
190
191	* Added help menus. Currently just runs info on the relevant node,
192	but it's better than nothing I s'pose. :-)
193
1942001-01-16  Russell Marks  <russell.marks@ntlworld.com>
195
196	* Added choice of timestamps to use when sorting in time/date
197	order - you can now choose mtime (default), ctime, or atime. You
198	can switch with alt-shift-m/c/a, or from selector menu's
199	Directory/Time & Date Type submenu, or with `sort-timestamp-type'
200	option/config. Thanks for Wolfram Kleff for suggesting this.
201
202	* src/main.c (viewer_key_press): you can now use shifted cursor
203	keys as an alternative means of paging up/down/left/right in the
204	viewer.
205	(selector_key_press): any `Menu' key you might have can now be
206	used to show the selector/viewer menus, just as right-clicking or
207	pressing F10 does.
208
2092000-12-28  Russell Marks  <russell.marks@ntlworld.com>
210
211	* src/readtiff.c: didn't need to include rcfile.h.
212	(read_tiff_file): previously flipped the image incorrectly.
213
2142000-12-21  Russell Marks  <russell.marks@ntlworld.com>
215
216	* `make install' now uses slightly more friendly Debian-ish
217	permissions (755 for executable, 644 for docs).
218
2192000-12-15  Russell Marks  <russell.marks@ntlworld.com>
220
221	* src/readgif.c (outputstring): copied new non-recursive
222	outputstring() across from zgv. No real advantage in xzgv, but
223	it saves a gratuitous inconsistency at least. :-) Oh,
224	actually, there is an advantage - this version shouldn't be
225	hangable even with badly broken GIFs.
226
2272000-12-14  Russell Marks  <russell.marks@ntlworld.com>
228
229	* src/main.c (cb_selection): made toggles which could possibly
230	affect the image display (in fact, did just about any which do
231	GTK+ stuff) ignore the toggle attempt if currently loading an
232	image. The main problem this fixes is the weirdness that used to
233	happen after toggling zoom while a picture was loading
234	(particularly when unzooming, and loading a `big' picture).
235
2362000-12-13  Russell Marks  <russell.marks@ntlworld.com>
237
238	* src/readgif.c (decompress): inittable() shouldn't have trusted
239	code size to match numcols. It broke on a certain flavour of
240	unusual and suboptimal, but valid, GIF with less than 256 colours
241	(probably generated by a `broken' encoder). Thanks to Lenart
242	Janos, Josip Rodin, and Chris Lawrence for spotting this and/or
243	pushing the bug report to your friendly neighbourhood upstream
244	maintainer. :-)
245
246	* src/readjpeg.c (read_jpeg_file): sped things up a bit by reading
247	in a slightly less simplistic manner, and by not doing "fancy
248	upsampling" (doing this previously was the main reason why
249	Imlib1's reader was faster). Combined with the change below, this
250	makes native JPEG reading a teeny bit faster than Imlib1's, so
251	it's now done that way for non-thumbnail use too. Also added
252	`careful-jpeg' option/config, in case you want to leave it
253	enabled (seems to be about a 10% slowdown).
254
255	* src/backend.c (backend_create_image_from_data_destructively):
256	now properly implemented for Imlib1. The way I've done it is
257	slightly evil, but it speeds things up. ;-)
258
259	* doc/xzgv.texi (File Type Identification): this bit could
260	probably do with a rewrite, but at least it vaguely resembles
261	reality now. :-)
262
263	* src/readtiff.c: TIFF reader - uses libtiff. This means yet
264	another library dependancy :-/, but enough people seem to use xzgv
265	with TIFFs that it's probably worth doing properly.
266
2672000-12-10  Russell Marks  <russell.marks@ntlworld.com>
268
269	* src/updatetn.c (update_one_tn): now makes sure a page of
270	thumbnails is visible even when doing non-recursive update -
271	previously doing such an update before all thumbnails had been
272	read in would show blank spots during the update (unlike the
273	now-usual xzgv behaviour of loading onscreen thumbnails asap).
274	This only seems to slow it down fractionally (by about 0.5% in a
275	large dir full of small files in thin-rows mode), so I think it's
276	worth it to get the consistency.
277
2782000-11-24  Russell Marks  <russell.marks@ntlworld.com>
279
280	* INSTALL: added more 0.6 success/failure reports - thanks to
281	Joerg Reuter at SuSE.
282
283	* src/main.c (viewer_key_press): whoops, I broke alt-a/u from
284	viewer when I added ^a/^u - sorted that out.
285
286	* src/backend.c: added gdk-pixbuf backend (aimed at 0.9.0).
287	gdk-pixbuf doesn't quite provide everything xzgv needs, and seems
288	rather slower than Imlib1 at rendering *despite* avoiding some
289	unnecessary pixmap creation, so I don't see myself recommending
290	use of this any time soon. Anyway, it's there if you want to try
291	it. It doesn't support flip/mirror/rotate, or any
292	brightness/contrast/gamma changes (I suppose I'll get around to
293	these eventually, but expect them to be *slow* as gdk-pixbuf
294	doesn't provide native facilities for this stuff), and doesn't
295	support as many filetypes as Imlib1 (no fallback I suppose), but
296	the rest is there.
297
2982000-11-23  Russell Marks  <russell.marks@ntlworld.com>
299
300	* src/readjpeg.c: adapted readjpegtn.c so it's usable as a normal
301	JPEG reader too. Unfortunately this seems to be slower than Imlib1
302	at reading JPEGs :-) (probably because creating Imlib's image from
303	the RGB data involves copying it?), so it's still only used for
304	thumbnails.
305
306	* src/main.c (cb_delete_file): added `delete-single-prompt'
307	option (cmdline and config file) so you can disable the y/n
308	prompt when deleting a file, rather like zgv's `nodelprompt'.
309	Thanks to Martin Bialasinski for suggesting this.
310
3112000-11-21  Russell Marks  <russell.marks@ntlworld.com>
312
313	* doc/xzgv.texi: case of chars in Alt-x and Ctrl-x forms should
314	now be uniformly lowercase.
315	(File Details): now mentions problem with zgv 5.0/5.1 generating
316	incorrect thumbnail width/height details (5.2 is ok).
317
318	* src/main.c: many keyboard navigation fixes/additions. Selector
319	and viewer now both support ^u/^v/^a/^e as alternatives to page
320	up/down and home/end. j/k in selector were fixed to behave more
321	like cursor up/down do.
322
3232000-11-20  Russell Marks  <russell.marks@ntlworld.com>
324
325	* src/main.c: concerted attempt to nail all the remaining
326	recursion problems. Now everything which even *thinks* of calling
327	render_pixmap() is protected. :-) This isn't perfect though, as
328	the protections are independent (do a mirror and flip at about the
329	same time, and it'll mess up), so I'll need a better fix
330	eventually.
331	(do_gtk_stuff): this is now a LOT smarter about what to do when
332	thumbnails are being loaded - fixes the bug where (while
333	thumbnails were being loaded) holding down space to storm through
334	N images got it very confused indeed.
335
336	* doc/xzgv.texi (Renaming a File): it's xzgv not zgv. :-)
337
338	* src/main.c (load_image): X windows are limited to a maximum size
339	of 32767x32767 pixels, and xzgv uses a GTK+ widget based on an X
340	window for its image. That's not the change, this is - previously,
341	my GIF/PNG/mrf file readers failed to notice the problem larger
342	images would cause, leading to a segfault - they now give an
343	error.
344	(cb_selection): now ensures focus is returned to selector when
345	changing dir, making the pastpos action clearer when using the
346	mouse (i.e. if you go down into a dir and then back up, the
347	keyboard cursor will show which dir you just left). Previously, if
348	you'd viewed an image before changing dir with the mouse, focus
349	would have remained on the image.
350
351	* src/updatetn.c: recursive thumbnail update no longer reads all
352	thumbnails before doing updates - it now only bothers to read
353	visible thumbnails. This makes the `fast-recursive-update' option
354	rather less useful, as it's nearly that fast already. :-)
355	(cb_update_tn_recursive_confirmed): previously didn't do pastpos
356	stuff to save/restore cursor row `around' recursive update -
357	fixed.
358
3592000-11-17  Russell Marks  <russell.marks@ntlworld.com>
360
361	* Now adapts rendering method for big images. When the number of
362	pixels in the image exceeds the value set by
363	image-bigness-threshold (as set in config file or on command-line,
364	defaulting to 2 million pixels), it's drawn piece-by-piece on
365	demand rather than all-at-once. The all-at-once behaviour is worth
366	keeping around for smaller images, as it gives much nicer
367	scrolling - but for big images it's just impractical, hence this
368	feature.
369
370	* src/main.c: previously, when you scaled down as far as it would
371	go, it would never let you scale down again in the same way, due
372	to breaking an anti-recursion measure. Fixed that.
373
3742000-11-16  Russell Marks  <russell.marks@ntlworld.com>
375
376	* src/backend.c: wrapper for rendering backend. This is now (apart
377	from the Makefile) the only place with any Imlib1 dependence, so
378	this should make it easier (or rather, slightly less than
379	infinitely hard :-)) to switch backends if I decide to do that, or
380	to support multiple backends (choosing backend at compile time).
381
3822000-11-11  Russell Marks  <russell.marks@ntlworld.com>
383
384	* doc/Makefile: replaced ifeq/ifneq with shell equivalent, which
385	turns out to be sufficient (if uglier). This should avoid the need
386	to use GNU make. Thanks to Frank Pohl for spotting this problem.
387
3882000-11-07  Russell Marks  <russell.marks@ntlworld.com>
389
390	* Changed `install -m' invocations to do plain install and change
391	permissions after (with chmod). Thanks to Steven Bankowitz for
392	reminding me of `-m' being a problem on things like Solaris.
393
3942000-10-29  Russell Marks  <russell.marks@ntlworld.com>
395
396	* src/main.c (init_window): as must be traditional by now, I found
397	a bug almost immediately after the release. :-) Quite a minor one,
398	thankfully. Previously you could still toggle thin-rows while
399	running in the `xzgv file(s)' way, which was silly and made things
400	look strange. Harmless, but fixed now.
401
4022000-10-28  Russell Marks  <russell.marks@ntlworld.com>
403
404	* Version 0.6.
405
4062000-10-27  Russell Marks  <russell.marks@ntlworld.com>
407
408	* src/filedetails.c (make_details_win): file details dialog now
409	works fully even when started with `xzgv file(s)' (previously the
410	details from any thumbnail were missing).
411
4122000-10-26  Russell Marks  <russell.marks@ntlworld.com>
413
414	* src/main.c (cb_selection): before, when you used decoupled
415	scaling and then rotated a picture, it messed up when resetting
416	things for the next picture. Fixed that. (It swapping the scalings
417	inappropriately when setting picture orientation to either 0 or
418	the last picture's state.)
419	(reinit_dir): when rescanning the directory (in the control-r
420	sense :-)), the keyboard cursor now tries to stay at the same
421	place in dir list, for consistency with zgv and because it's just
422	nicer. Thanks to Philippe Marzouk for spotting this one.
423
424	* TODO: made into an outline to keep the less important stuff from
425	crowding out the things I should really be thinking about.
426
4272000-10-25  Russell Marks  <russell.marks@ntlworld.com>
428
429	* doc/makeman.awk: previously, a one-line paragraph with a
430	formatting-type @-command would merge into the start of the next
431	paragraph.
432
433	* src/readgif.c (outputchr): was previously broken for interlaced
434	GIFs with less than 4 lines; this broke the heap, leading to
435	difficult-to-pin-down segfaults.
436
437	* INSTALL: generally updated and tidied up. Also added a section
438	reporting how past versions of xzgv (currently 0.5) have been said
439	to react on certain non-Linux/x86 systems.
440
4412000-10-23  Russell Marks  <russell.marks@ntlworld.com>
442
443	* src/copymove.c: now copes with copy/move when started as `xzgv
444	file(s)'. It's not perfect, in that the selector isn't updated (so
445	after a move things can be confusing), but at least it's usable.
446
447	* Made icon a bit less indistinct. :-)
448
4492000-10-22  Russell Marks  <russell.marks@ntlworld.com>
450
451	* You can now change the sorting order from the command-line with
452	`-o'/`--sort-order' (and from a config file similarly), which
453	takes a name/ext/size/date (or time) arg (though only the first
454	char is required).
455
456	* src/rcfile.c: if you omitted the arg to an option in a config
457	file, it would segfault. Fixed that, and applied brown paper
458	bag as appropriate. :-)
459
460	* src/rcfile.c (usage_help): usage help is now strictly sorted in
461	long-option order.
462	(geom_parse): would previously get stuck in an infinite loop if
463	given a bogus geometry arg.
464
4652000-10-17  Russell Marks  <russell.marks@ntlworld.com>
466
467	* Added my own PNG reader (well, libpng interface :-)), ported
468	from zgv. This avoids the Imlib PNG problems (still present in
469	1.9.8, the latest version I've checked), such that greyscale
470	PNGs are now read correctly, and you no longer have the `now
471	it's purple, now it's not' problem with partly-transparent
472	PNGs. (Though that does still affect, for example, XPMs.) It
473	also seems to be slightly faster, but only very slightly. So
474	note that you now need to have png.h and pngconf.h available
475	when compiling xzgv (you already needed the *library* for
476	Imlib, but now you need the headers too).
477
4782000-10-10  Russell Marks  <russell.marks@ntlworld.com>
479
480	* doc/makeman.awk: ported over zgv change - previously it didn't
481	output a correct NAME line (it used "-" rather than "\-").
482
4832000-10-07  Russell Marks  <russell.marks@ntlworld.com>
484
485	* Since I've finally switched to using Emacs's c-mode, after
486	getting the indentation configured correctly with no bugs
487	getting in the way (I hope :-)), I've reindented everything
488	(other than getopt* and install-info.c) with it. The changes
489	are minor, obviously - essentially it's just lining things up
490	a bit more nicely, though some long lines in main.c had to be
491	mangled a bit to keep the line length under 80 chars.
492
4932000-09-30  Russell Marks  <russell.marks@ntlworld.com>
494
495	* src/rcfile.c: get_config() previously assumed $HOME was set.
496
4972000-09-25  Russell Marks  <russell.marks@ntlworld.com>
498
499	* src/main.c: added gamma support, but as with brightness/contrast
500	this is only available from the keyboard for now. The basic idea
501	is to ignore the rather unworkable image/screen gamma distinction,
502	and just use a relative gamma with fast shortcuts for common
503	cases. So pressing `1' gives a gamma adjustment of 1.0 (i.e. no
504	adjustment), `2' gives 2.2 (for e.g. viewing linear-gamma files on
505	an average PC monitor), `3' gives 1/2.2 (~0.45, for e.g. viewing
506	2.2-gamma files on a linear-gamma display), and `4' reverts to any
507	`--gamma' setting (or 1.0 if none was set). You can also use
508	alt-comma and alt-dot for more precise control of gamma
509	adjustment. Note that gamma is deliberately *not* reset by the
510	brightness/contrast resetting keys.
511
5122000-08-26  Russell Marks  <russell.marks@ntlworld.com>
513
514	* doc/xzgv.texi (Invoking xzgv): --zoom-reduce-only line should
515	have been an `itemx' not an `item'.
516	(Rescanning the Directory): rephrased to avoid awkward repetition
517	of `however'.
518
519	* Changed `$(MAKE) -C foo bar' in Makefiles to the more portable
520	form `cd foo && $(MAKE) bar'.
521
522	* Unfortunately doc/makeman.awk really does require gawk (some
523	features of gensub are too difficult to do without), so I've
524	changed the Makefiles such that a prebuilt man page will come with
525	the xzgv tgz. This doesn't make the tgz much larger, and seems a
526	tolerable compromise for coping with gawkless systems.
527
5282000-08-24  Russell Marks  <russell.marks@ntlworld.com>
529
530	* src/Makefile: install-info uses getopt_long(), so it needs to
531	link with getopt.o and getopt1.o to avoid problems on non-glibc
532	systems. Thanks to Steven Bankowitz for the feedback on a Solaris
533	build which lead to this fix (and those below).
534
535	* src/install-info.c: now uses the bundled getopt.h rather than
536	assuming there's one on the system.
537
538	* config.mk: added AWK line, so you can specify the awk
539	interpreter to use. (A `new' awk is needed, so gawk is the
540	default, but nawk is another possibility.) This setting doesn't
541	yet apply to doc/makeman.awk, which is currently hardcoded to use
542	gawk since it requires a gawk extension. (One to fix later, I
543	suppose. :-))
544
5452000-08-17  Russell Marks  <russell.marks@ntlworld.com>
546
547	* Version 0.5.
548
5492000-08-15  Russell Marks  <russell.marks@ntlworld.com>
550
551	* logo.c: whoops, still had a zgv header, fixed that. :-)
552
553	* TODO: checked up on does-this-still-happen bugs - most do still
554	happen. They're not major ones, I s'pose, but it's enough for the
555	next version to be 0.5 rather than the 1.0 I'd been considering.
556	:-/
557
558	* src/main.c: made the thumbnail loading's jumping-about
559	behaviour considerably smarter - it should be pretty optimal
560	now (given the requirement that it jump around to show
561	currently-visible stuff, that is).
562
5632000-08-04  Russell Marks  <russell.marks@ntlworld.com>
564
565	* src/libmmx-990416/mmx.h: fixed so it compiles even with
566	optimisation off, though I can't imagine why you'd compile it like
567	that. :-) Thanks to Gabor Z. Papp for pointing this out (albeit
568	somewhat indirectly).
569
5702000-07-25  Russell Marks  <russell.marks@ntlworld.com>
571
572	* src/gotodir.c: previously, jumping from a large dir to a large
573	dir (or even to a small dir, sometimes) could result in the
574	redrawing of the main window being noticeably delayed after the
575	dir-change window being destroyed - fixed that (mostly).
576
5772000-07-24  Russell Marks  <russell.marks@ntlworld.com>
578
579	* src/main.c: massively reduced *apparent* thumbnail load time, by
580	making it jump around to whichever part of the directory you're
581	currently looking at. :-) (It will eventually fill in any gaps,
582	when you stop moving around for long enough.)
583
5842000-07-13  Russell Marks  <russell.marks@ntlworld.com>
585
586	* src/main.c: added preliminary check when reading files from
587	command-line, to get rid of (at least in most cases) the
588	window-open-then-close ugliness you used to get before a `no
589	files' error message.
590
5912000-07-11  Russell Marks  <russell.marks@ntlworld.com>
592
593	* src/main.c: rows have been made 2 pixels taller, to allow room
594	for the outline cursor to go either side of the thumbnail rather
595	than potentially XORing over it. In addition to being a little
596	more aesthetically pleasing :-), this works around what seems to
597	be a GTK+ bug (as of 1.2.7 at least), where scrolling with the
598	cursor keys can leave part of the XOR'd cursor outline stuck on
599	the thumbnail (I suspect the pixmap is being drawn at the wrong
600	time). The extra pixel lines reduce the number of thumbnails
601	visible at once very slightly, which is unfortunate, but I really
602	think it's necessary.
603
6042000-07-10  Russell Marks  <russell.marks@ntlworld.com>
605
606	* src/main.c: fixed recursion problems in scaling. Thanks to
607	Steven Flintham for reminding me of this, and noting how badly it
608	affected decoupled scaling.
609
6102000-07-04  Russell Marks  <russell.marks@ntlworld.com>
611
612	* src/main.c: anti-clockwise rotation previously didn't swap x/y
613	scaling values, so when using decoupled scaling it screwed up.
614
6152000-06-28  Russell Marks  <russell.marks@ntlworld.com>
616
617	* src/main.c: fixed a significant memory leak, though you probably
618	wouldn't have noticed it unless you did a recursive thumbnail
619	update on a fairly well-populated hierarchy. I have a feeling this
620	fix *may* break older GTK+ versions; if changing directory
621	segfaults, you need to upgrade. :-) It's known to work on at least
622	GTK+ >=1.2.6.
623
6242000-06-27  Russell Marks  <russell.marks@ntlworld.com>
625
626	* doc/xzgv.texi: finally got around to documenting decoupled
627	scaling stuff. :-)
628
629	* doc/xzgv.texi (Viewer Options): listed keyboard shortcut for
630	zoom-reduce-only was wrong.
631
632	* src/options.src: added short option `-r' for zoom-reduce-only.
633	It's a useful enough option that it's worth having a shortcut. :-)
634
635	* src/main.c: added mouse shortcut for decoupled scaling. This is
636	quite a tricky one on the UI front, but the basic idea is that you
637	can scale only one axis directly from the mouse, as it were, with
638	ctrl-click and ctrl-right-click. You can change the axis to scale
639	(default is the Y axis) by using the axis toggle on the viewer
640	options menu (or by pressing alt-c). You can change the default by
641	enabling `mouse-scale-x', on the cmdline or in a config file.
642
6432000-06-08  Russell Marks  <russell.marks@ntlworld.com>
644
645	* src/main.c: added decoupled scaling - you can now scale x and y
646	axes of a picture independently. Thanks to Steven Flintham for
647	suggesting this. It's primarily for fixing aspect ratios on pics
648	intended for viewing with non-square pixels. Interpolation isn't
649	supported when the x scale doesn't equal the y scale.
650
6512000-05-11  Russell Marks  <russell.marks@ntlworld.com>
652
653	* config.mk: changed back to using -O2. It seems this doesn't
654	break anything any more. Presumably I'm now avoiding whatever
655	compiler bug was probably responsible for problems before. :^)
656
6572000-05-06  Russell Marks  <russell.marks@ntlworld.com>
658
659	* src/main.c: clicking on the viewer now moves to the next
660	image. Dragging the picture around still works - any mouse
661	movement at all during the click, and the picture gets dragged
662	instead. (If you want/need to disable this for some reason,
663	you can do so with `click-for-next off' in ~/.xzgvrc.) Thanks
664	to Paul E. Johnson for this idea.
665
6662000-05-03  Russell Marks  <russell.marks@ntlworld.com>
667
668	* src/main.c: previously, if you had auto-hide and zoom turned on,
669	then turned off auto-hide, the picture wasn't rezoomed when the
670	selector was shown - fixed that.
671
672	* src/libmmx-990416/mmx.h: fixed to work with gcc 2.95.x. Had to
673	remove eax from clobber list in mm_support(), and get rid of some
674	spurious colons after instructions. It now compiles
675	(and seems to work ok) with -DINTERP_MMX on at least three
676	different versions of gcc (thanks to Steven Flintham for testing
677	two of them :-)).
678
6792000-04-23  Russell Marks  <russell.marks@ntlworld.com>
680
681	* Updated email address everywhere (except below).
682
6832000-04-14  Russell Marks  <russell.marks@dtn.ntl.com>
684
685	* config.mk: now easier to install info file/man page in
686	FHS-friendly PREFIX/share (e.g. /usr/share/man/man1). However, the
687	traditional locations are still the default, as I suspect e.g.
688	/usr/local/share/man/man1 is much less widely accepted than
689	/usr/local/man/man1. If you're installing in /usr, though,
690	uncommenting the SHARE_INFIX line may be a good idea.
691
6922000-03-31  Russell Marks  <russell.marks@dtn.ntl.com>
693
694	* Version 0.4.
695
696	* README: removed mrf stuff which I suspect no-one cared about in
697	the first place. (Even I was getting tired of it, and I *use*
698	mrf... :-))
699
7002000-03-14  Russell Marks  <russell.marks@dtn.ntl.com>
701
702	* doc/xzgv.texi: documented cut/copy/paste in `goto dir' dialog.
703
704	* doc/xzgv.texi (Moving Around The List): removed link from after
705	"Mouse-happy types can freely skip it" comment, as it wasn't that
706	useful and would have looked odd in a printed copy... :-)
707
708	* src/main.c: you can now use j/k for down/up in the selector, as
709	vi-like alternatives to the cursor keys.
710
7112000-03-12  Russell Marks  <russell.marks@dtn.ntl.com>
712
713	* src/main.c: added brightness/contrast, which works in just the
714	same way as in zgv. No mouse equivalent yet though, as I'm having
715	some difficulty thinking of a reasonable way to do it. (I may even
716	end up (ab)using a modal dialog for it, which would be *odd* but
717	may be the least unreasonable approach given the way xzgv works in
718	general.) I'd ended up putting it off for a while to ponder this,
719	but in the end decided to get it done and add the mousey version
720	later.
721
722	* src/main.c: now avoids a malloc()/free() for each thumbnail
723	read. I doubt it makes much difference to anything though.
724
7252000-03-08  Russell Marks  <russell.marks@dtn.ntl.com>
726
727	* INSTALL: updated to reflect MMX change, and asked for feedback
728	regarding portability.
729
730	* config.mk: disabled INTERP_MMX by default, as libmmx doesn't
731	seem to compile under a newer gcc/egcs, and there was no newer
732	libmmx when I last checked, *and* I can't easily try fixing this
733	myself until I'm running 2.95.* or whatever. :-/
734
7352000-03-07  Russell Marks  <russell.marks@dtn.ntl.com>
736
737	* doc/xzgv.texi (Invoking xzgv): de-biased bit which mentioned
738	GNOME in passing to mention both GNOME and KDE, as both are
739	equally valid in context.
740
741	* src/main.c: 15/16-bit dithering can now be toggled with shift-f,
742	by analogy with zgv's `fakecols' toggle.
743
7442000-03-03  Russell Marks  <russell.marks@dtn.ntl.com>
745
746	* src/main.c: fixed the problem with toggling zoom off and on
747	quickly, where scrollbars were disabled but an unzoomed image was
748	shown instead of a zoomed one. This was due to recursion in
749	toggle_zoom(), which is now avoided.
750
7512000-02-11  Russell Marks  <russell.marks@dtn.ntl.com>
752
753	* I now actually bother using my email address for changelog
754	entries. :-)
755
756	* src/main.c: renamed `Exit viewer' menu item to `Exit to
757	Selector', which should make the meaning less ambiguous.
758
759	* TODO: slightly tidied up and checked/updated.
760
7612000-02-05  Russell Marks  <rus@cartman>
762
763	* README: looks like I left this on 0.2 for 0.3, whoops :-)
764
765	* src/main.c: added file rename. The key it's on is heavily
766	suboptimal (^n), but all the good ones were taken. :-) Menu-wise
767	it's ok though - File/Rename file (by analogy with the
768	delete-single-file one).
769
770	* src/rename.c: created.
771
7722000-02-03  Russell Marks  <rus@cartman>
773
774	* src/main.c: file magic tests in load_image() supplied 4 bytes to
775	test, but only bothered testing 3. :-)
776
7772000-01-29  Russell Marks  <rus@cartman>
778
779	* src/updatetn.c: now avoids the nasty `shear' effect you got when
780	updating thumbnails and it needed to scroll the window before
781	updating a thumbnail.
782
7832000-01-14  Russell Marks  <rus@cartman>
784
785	* Version 0.3.
786
787	* src/config.mk: changed CFLAGS to use -O instead of -O2 (I
788	actually did this a few days back); Steven has had weird problems
789	with a recent gcc with -O2, but -O works. (I seem to be ok with
790	(according to `gcc --version') egcs 2.91.66, but it's easier to
791	just throttle back than have it screw up. Besides, all this really
792	does is slow down scaling a bit.)
793
794	* Removed mention of the forfree.at email address, which seems to
795	be b0rken :-(, and replaced with my actual current address.
796
797	* INSTALL: removed note about needing getopt_long().
798
799	* Added getopt.[ch] and getopt1.c from glibc, so things should
800	hopefully still work on a libc which lacks getopt_long().
801
8022000-01-10  Russell Marks  <rus@cartman>
803
804	* src/copymove.c: use pastpos to try and stay in similar place in
805	selector when rescanning dir. It isn't perfect - in particular, if
806	the old row no longer exists it goes to row 0 rather than staying
807	at the end - but it's better than *always* going to row 0.
808
8092000-01-09  Russell Marks  <rus@cartman>
810
811	* src/copymove.c: added copy/move. These work like zgv - copy/move
812	tagged files if any tagged, otherwise copy/move the file the
813	cursor is on. (Being zgv-like also means they stop if they run
814	across an existing file, which can be a little annoying but is
815	probably safest.)
816
817	* src/gotodir.c: made cb_ok_button() static.
818
8191999-12-19  Russell Marks  <rus@cartman>
820
821	* src/main.c: you can now use `-k' or `--skip-parent' (or config
822	file entry) to skip the (keyboard) cursor past `..' on the
823	directory xzgv starts on. This can be useful when you want to
824	immediately use space to `page' through a dir. Thanks to Steven
825	Flintham for this idea.
826
8271999-12-14  Russell Marks  <rus@cartman>
828
829	* src/main.c: the idle_zoom_resize() idle func is now default
830	priority rather than resize priority. This fixes a problem where
831	zoom mode resizes were one resize behind (!) - thanks to Steven
832	Flintham for pointing this out. Unfortunately this makes `opaque
833	resize' a bit slower, but I think this fix is clearly the Right
834	Thing.
835
8361999-12-13  Russell Marks  <rus@cartman>
837
838	* doc/makeman.awk: fixed spurious blank line output in middle of
839	@item/@itemx pairs when there was a comment line between them.
840	It's a pretty ugly kludge, but I couldn't really see any other fix
841	which wouldn't break something else. :-/
842
843	* src/main.c: scaling can now scale the image *down* as well as
844	up. That is, you can make the image smaller more controllably than
845	you can by using zoom mode. I thought I'd add this as, given the
846	way Imlib works, it comes very cheaply indeed. However, it tends
847	to only be useful (i.e. be any advantage over zoom mode) on big
848	images, where you might want to scale down a bit rather than a
849	lot. One thing I should point out - if you've got used to doing
850	e.g. shift-d lots to get back to 1:1, you'll just have to learn
851	about the `n' (= Scaling/Normal) key... :-)
852
853	* src/main.c: invert-logo now kludges the bottom/rightmost lines
854	of the logo (which are black in the original, and thus turn white)
855	to be a more appropriate grey. A miswart, essentially - it's
856	horrible, but probably the Right Thing in context. :-)
857
8581999-12-10  Russell Marks  <rus@cartman>
859
860	* AUTHORS: created. Just points at the main docs, I'm sure a
861	duplicate copy would get out of date. :-)
862
8631999-12-09  Russell Marks  <rus@cartman>
864
865	* src/main.c: various things which implicitly turned off zoom mode
866	(basically scaling and `normal') didn't reenable scrollbars
867	afterwards; fixed that.
868
8691999-12-08  Russell Marks  <rus@cartman>
870
871	* src/main.c: new `invert-logo' config file option, flips the
872	colours in the logo to look less awful on dark GTK+ themes. :-)
873	The obvious way to `fix' this is to provide some way of disabling
874	the logo, but at the moment it assumes there's always a picture in
875	the viewer window, so this is a bit hairy. (And I think it looks
876	odd with the viewer window empty, which is the reason I bothered
877	with a logo in the first place!)
878
8791999-12-06  Russell Marks  <rus@cartman>
880
881	* src/main.c: added MMX-aware version of scaling with
882	interpolation code (using a bundled copy of Hank Dietz/Randy
883	Fisher's libmmx). According to my tests, it's `only' about 35%
884	faster, but it feels like more. :-) See config.mk for details.
885
886	* src/rcfile.c: you can now set the selector's initial/default
887	width with `--selector-width' (or config file setting). It can
888	only be specified in pixels for the time being, but I should add a
889	percentage option at some point. :-)
890
8911999-11-30  Russell Marks  <rus@cartman>
892
893	* doc/xzgv.texi (Config Variable Types): added `geometry', which
894	was missing, and corrected previous bit which said all config vars
895	were boolean.
896
8971999-11-22  Russell Marks  <rus@cartman>
898
899	* Version 0.2.
900
901	* Made install targets use `mkinstalldirs' (from texinfo) to make
902	paths to installation dirs first. Apparently the FHS guarantees
903	little if anything about /usr/local, so this is basically required
904	rather than merely being a good idea. I've left `mkinstalldirs'
905	non-executable (and run /bin/sh on it directly from the
906	Makefiles), as I don't like the idea of having a single executable
907	file in the top-level dir (some people might think it's like a GNU
908	configure script or whatever, and run it :-)).
909
9101999-11-16  Russell Marks  <rus@cartman>
911
912	* src/main.c: some fixes to avoid unwanted recursion when e.g.
913	space is being held down. There still seem to be problems with
914	this when you're really hammering it though (space held down for a
915	long time in a dir with many small images).
916
9171999-11-13  Russell Marks  <rus@cartman>
918
919	* src/main.c: now have a reduce-only option for zoom mode, meaning
920	you can have xzgv fit big pictures to the window without having
921	tiny icons etc. balloon up and look horrible. It's not the
922	default, but you can enable it with Alt-r or the viewer options
923	menu's "When Zooming Reduce Only" toggle or `--zoom-reduce-only'
924	or equivalent config file setting. Thanks to Steven Flintham and
925	Robert Braddock for this idea.
926
9271999-11-12  Russell Marks  <rus@cartman>
928
929	* doc/xzgv.texi (Invoking xzgv): missed out `geom' arg after `-g'
930	previously, fixed that.
931
9321999-11-06  Russell Marks  <rus@cartman>
933
934	* doc/xzgv.texi (Acknowledgements): added a credit for
935	`install-info', which *seems* to have been largely written by Karl
936	Berry, though it's not terribly clear (e.g. the initial change log
937	entry is by RMS, but it just says "new file" or similar, so I'm
938	assuming he didn't do a great deal :-)).
939
9401999-11-04  Russell Marks  <rus@cartman>
941
942	* src/main.c: fixed bug where, if you enabled zoom on a picture of
943	nearly the same shape as the viewer window, it left the scrollbars
944	on.
945
9461999-11-03  Russell Marks  <rus@cartman>
947
948	* src/main.c: you can now set whether to use 15/16-bit dithering
949	or not independent of Imlib's default setting. The option is
950	Options/Dither in 15 & 16-bit (guess who's using item_factory :-))
951	on the viewer menu, and can also be set by --dither-hicol or
952	equivalent config file setting.
953
9541999-11-01  Russell Marks  <rus@cartman>
955
956	* src/rcfile.c: added `-g'/`--geometry' option (and config file
957	setting), which lets you set the xzgv window's geometry in the
958	usual X fashion. As an extension, all positions/sizes can be given
959	as percentages of the screen size - for example, the default
960	geometry is `92%x85%'.
961
9621999-10-31  Russell Marks  <rus@cartman>
963
964	* src/main.c: no longer keeps saying "Reading file..." on
965	statusbar if a file couldn't be read.
966
967	* src/main.c: error dialogs now use an Ok button a third the width
968	of the window, so they look a bit more like the other dialogs.
969
970	* src/updatetn.c: made recursive update require confirmation.
971	There's some annoyance value to this, I suppose, but I think it's
972	justified. It really *can* take a long time, after all, and the
973	dialog also explains what `recursive update' actually means; I
974	think this is useful as it's a term some non-programmers are
975	unlikely to be very familiar with.
976
977	* src/main.c: added file delete (with confirmation), as
978	File/Delete and ctrl-d. I couldn't seem to figure out how to get
979	it bound to Delete (and the hairy and somewhat religious
980	Backspace/Delete mapping area is probably best avoided anyway). I
981	did consider putting it on shift-d like in zgv, but I thought the
982	clash with shift-d as used in the viewer made this potentially a
983	bad idea. (Also, ctrl-d has a `delete' meaning in various other
984	things (e.g. Emacs), while shift-d is probably only used for this
985	by zgv.)
986
987	* src/confirm.c: generic confirmation (yes/no) dialog.
988
9891999-10-27  Russell Marks  <rus@cartman>
990
991	* Added recursive thumbnail update. One problem with this is that
992	it reads all existing thumbnails in a dir before updating (like
993	xv, IIRC) to try and avoid having a really ugly selector during
994	the update :-), though you can disable this with
995	`--fast-recursive-update' or an equivalent config file line.
996
997	* src/updatetn.c: moved thumbnail-update stuff here, and removed
998	extra GTK+ update from makexv332(), which was causing problems (it
999	usually segfaulted if you destroyed the main xzgv window while
1000	updating thumbnails).
1001
10021999-10-26  Russell Marks  <rus@cartman>
1003
1004	* src/main.c: now copes with being started in an unreadable dir,
1005	and avoids selecting files/dirs it doesn't have sufficient
1006	permissions for.
1007
10081999-10-25  Russell Marks  <rus@cartman>
1009
1010	* src/main.c: you can now tag an image while viewing (like in zgv)
1011	by doing ctrl-space (not like in zgv :-)). Also on viewer menu
1012	after next/previous image.
1013
1014	* src/resizepic.c: added a similar speedup which should work
1015	for any file type - it's not quite as fast as the JPEG
1016	approach, which is only really applicable to JPEGs, but it
1017	speeds things up a *lot* for non-JPEGs. It does mean that
1018	thumbnails for dithered images don't usually look as good as
1019	before, but you could probably argue that this makes them more
1020	faithful. :-) (Ok, I realise this could be annoying, so this
1021	speedup will probably become optional at some point...)
1022
1023	* src/readjpegtn.c: custom JPEG loader for thumbnails, makes them
1024	as fast to generate as in zgv (well, curiously, it works out
1025	faster in xzgv for, uh, `technical reasons' :-)). The code which
1026	actually makes things faster was contributed to zgv by Costa
1027	Sapuntzakis.
1028
10291999-10-24  Russell Marks  <rus@cartman>
1030
1031	* doc/xzgv.texi: hacked to reflect recent changes.
1032
1033	* src/main.c: you can now `close' a file (clear the viewer,
1034	returning to the startup logo).
1035
1036	* src/gotodir.c: `go to dir' dialog. (Only text-entry for now (!),
1037	but I'll probably extend it at some point.) Changed Sort Order
1038	menu items to be `Sort by Name' etc. under new `Directory' menu to
1039	accomodate this as Directory/Change (also on G (zgv-like)). Added
1040	Directory/Rescan (^R) while I was at it. :-)
1041
1042	* src/main.c: error dialog looked weird before, doesn't look as
1043	weird now. :-)
1044
10451999-10-23  Russell Marks  <rus@cartman>
1046
1047	* src/main.c: Esc now exits an error dialog (making it consistent
1048	with the other ones).
1049
1050	* src/filedetails.c: `file details' dialog - selected by
1051	File/Details or (as in zgv) `:'/`;'. Includes width/height from
1052	thumbnail, if present. (Thumbnails from versions of zgv before 5.0
1053	didn't include this - you may to delete your old thumbnails and
1054	`update' if you find that a problem. Note that thumbnails
1055	generated with xzgv/xv/Gimp should be ok.)
1056
1057	* src/main.c: right-clicking on the selector to get the menu
1058	now also moves the focus row (keyboard cursor) to the file you
1059	right-clicked on (and switches focus to the selector). This
1060	should give us a way of doing single-file operations (well,
1061	those other than viewing) with the mouse, without needing to
1062	sacrifice the IMHO very nice single-click-to-view behaviour.
1063
10641999-10-20  Russell Marks  <rus@cartman>
1065
1066	* Replaced the directory/file-without-thumbnail icons with nicer
1067	ones. They're loosely based on gmc's `dir-close.xpm', which I
1068	think Tuomas Kuosmanen was responsible for (judging from the
1069	change log). Thanks also to Steven Flintham for pointing out that
1070	the old icons were pretty crap. :-)
1071
10721999-10-19  Russell Marks  <rus@cartman>
1073
1074	* Bothered giving it a half-decent logo. :-) Also has a similar
1075	icon.
1076
1077	* src/main.c: thumbnail updates now make sure any row a thumbnail
1078	is being updated for is visible, making the update look more like
1079	it does in zgv - as well as making it rather more clear what's
1080	going on. :-) (The old position is restored when the update is
1081	finished.)
1082
10831999-10-03  Russell Marks  <rus@cartman>
1084
1085	* src/main.c: made middle-click on the viewer toggle the selector
1086	rather than always acting like Exit viewer. Thanks to Steven
1087	Flintham for suggesting this.
1088
1089	* src/main.c: previously segfaulted on files less than 4 bytes
1090	long due to a typo. Um, whoops... :-}
1091
10921999-09-30  Russell Marks  <rus@cartman>
1093
1094	* src/readgif.c: shouldn't hang on some corrupt GIFs now. This
1095	change reflects the one in zgv 5.0, and thanks go to Andy Mortimer
1096	for the fix (to zgv, but it (currently) applies to xzgv too).
1097
10981999-09-27  Russell Marks  <rus@cartman>
1099
1100	* doc/xzgv.texi: corrected a couple of typos.
1101
11021999-09-14  Russell Marks  <rus@cartman>
1103
1104	* src/main.c: now has tagging - `-' untags, `=' tags, and with
1105	Alt (Meta) they untag/tag all. As for the mouse, ctrl-click
1106	tags/untags, and there's now a File menu (might become Tagging
1107	or similar, haven't really made up my mind) which has items
1108	for tag/untag all. No way of tagging from the viewer
1109	currently, though, and at the moment nothing at all takes any
1110	notice of whether a file is tagged or not. :-) (Also, you
1111	can't tell if a file is tagged if it's also selected!)
1112
11131999-09-12  Russell Marks  <rus@cartman>
1114
1115	* src/main.c: pixmaps for dirs and thumbnailless pics are now
1116	shaped, rather than having an ugly white background.
1117
1118	* src/main.c: another focus-row bug fixed - when the selector lost
1119	focus due to selecting a picture, it didn't undraw the focused
1120	row. (This isn't very obvious with the default GTK+ theme, but it
1121	really shows up with e.g. Rasterman's `pixmap' one.) This was due
1122	to my disabling can-focus *before* changing focus (whoops).
1123
1124	* src/main.c: fixed problem where xzgv's moving the focused row
1125	`by hand' sometimes messed up the display.
1126
11271999-09-08  Russell Marks  <rus@cartman>
1128
1129	* doc/makeman.awk: previously the last output line of a
1130	paragraph was never escaped, meaning it would most likely be
1131	lost if it began with a dot (this mangled the first paragraph
1132	of the `Updating Thumbnails' node).
1133
11341999-09-02  Russell Marks  <rus@cartman>
1135
1136	* doc/xzgv.texi (Updating Thumbnails): fixed fixed double double
1137	word word. :-)
1138
11391999-08-14  Russell Marks  <rus@cartman>
1140
1141	* Version 0.1.
1142
1143	* doc/xzgv.texi: cleaned up - mainly a matter of updating a few
1144	bits, and removing all the zgv stuff which doesn't yet apply (for
1145	as-yet-unimplemented stuff like brightness/contrast, tagging,
1146	slideshows... the list goes on :-)).
1147
1148	* Various cmdline/config options added, so that all runtime
1149	options can now have defaults messed about with. :-)
1150
11511999-08-09  Russell Marks  <rus@cartman>
1152
1153	* src/main.c: previously render_pixmap() didn't bother checking if
1154	theimage was NULL (i.e. if no picture was loaded), which broke
1155	e.g. `xzgv --zoom *.jpg'.
1156
1157	* Rearranged things to give a more zgv-like directory layout,
1158	things were getting a bit confusing with all sorts packed into one
1159	dir.
1160
1161	* rcfile.c: ok, it was deeply hairy, but I've converted zgv's
1162	option-parsing and config-file-reading code and (the hairy part)
1163	added long-option support, making long-option names and config
1164	file variable names the same, and having stuff only defined once.
1165	I thought I'd be able to use some cpp trickery to get this
1166	working, but I ended up using an awk script. :-/
1167
11681999-08-08  Russell Marks  <rus@cartman>
1169
1170	* main.c: finally have keyboard control over relative window sizes
1171	(paned widget). `[' moves splitter left, `]' moves it right,
1172	with ctrl+[ and ctrl+] moving in smaller steps. `~' returns
1173	selector to default size, as well as unhiding it.
1174
1175	* main.c: cursor-key equivalents of the small hjkl movements
1176	added; ctrl-cursor moves 10 rather than 100 pixels.
1177
1178	* main.c: fixed bug where any viewer exposure after a
1179	failed-picture-load caused a segfault. (!) I think the code
1180	changes I needed for scaling probably teased this one out, as that
1181	works with the imlib image itself, rather than a pixmap rendered
1182	by it.
1183
11841999-08-05  Russell Marks  <rus@cartman>
1185
1186	* doc/xzgv.texi: created, based on zgv's zgv.texi. Pretty scrappy
1187	for now, but at least I've started. :-)
1188
11891999-08-04  Russell Marks  <rus@cartman>
1190
1191	* main.c: thumbnail column now matches maximum possible thumbnail
1192	width, making thin rows mode look a *lot* better.
1193
1194	* main.c: menus popped up with F10 now appear in more reasonable
1195	places (top-left of the subwindow they were popped up from).
1196
1197	* main.c: you can now iconify (minimise) the window with ^Z. I
1198	also put it on the menu, which might be handy if you're running
1199	fullscreen and don't know what a keyboard is. :-) Also moved `hide
1200	selector' to the new `window' menu created primarily for minimise.
1201
1202	* main.c: rearranged some menu items - in particular, shifted all
1203	viewer toggles onto an `options' menu. It looked ugly with the
1204	options littering otherwise `normal' menus, and I'm not sure that
1205	(e.g.) having zoom on the scaling menu was all that smart to begin
1206	with. :-)
1207
1208	* main.c: fullscreen option (start with `-f'). Uses the entire
1209	screen with no window frame or anything (if your wm recognises the
1210	decor hints - I think they're mwm ones, but fvwm handles them,
1211	meaning that most wm's around today do :-)). I tried having it as
1212	a run-time option, but it was just too evil trying to `switch
1213	back' from fullscreen, and I never got it entirely working.
1214
12151999-08-02  Russell Marks  <rus@cartman>
1216
1217	* main.c: now has the full range of revert stuff from zgv. This
1218	has been streamlined a little to make sense in the largely
1219	modeless xzgv, so now you only have the revert-orientation option,
1220	but it's on the viewer menu so the effect of zgv's
1221	saved-orientation stuff isn't too hard to duplicate.
1222
1223	* main.c: now supports scaling, interpolation and all. :-) Since
1224	keeping a scaled-up image in memory would take up a LOT of room
1225	(we're talking hundreds of megs, even gigs - work it out), the
1226	scaling has to be done on the fly, so it's a bit slow even on
1227	(what I would consider to be) a fast machine. But hey, at least
1228	it's there, and nothing's any slower when you're not using it.
1229
1230	* main.c: thumbnail update now updates pixmaps in selector
1231	directly. This is more efficient than the old behaviour, and has
1232	the additional advantage that you can get to see thumbnails even
1233	if you don't have permission to write them (though you'd have to
1234	do an update every time you revisited the dir!).
1235
1236	* main.c: couldn't-load-file errors now go in dialog rather than
1237	on stderr. :-) They also result in the selector being shown,
1238	useful if you ran xzgv on pics from the command-line.
1239
12401999-08-01  Russell Marks  <rus@cartman>
1241
1242	* main.c: made thin rows mode considerably more useful by
1243	maintaining a separate rescaled thumbnail. This is only rescaled
1244	crudely (a take-every-nth-pixel approach), but it works
1245	surprisingly well.
1246
12471999-07-31  Russell Marks  <rus@cartman>
1248
1249	* main.c: selector now has zgv-like goto-next-char on g and '.
1250	Like in zgv, there's no indication that it's waiting for a char,
1251	so I've made it timeout after two seconds in case of accidental
1252	presses and the like. (Strictly speaking it doesn't *wait* for the
1253	char; the initial g or ' just sets a flag.)
1254
1255	* main.c: F10 now pops up the right-button menu (in both the
1256	selector and the viewer). You can now also use Enter (well,
1257	actually Return) instead of Space as an alternative way of
1258	selecting a pic.
1259
1260	* main.c: markedly improved keyboard support in viewer by handling
1261	keypresses directly. This is a bit kludgey really, but given that
1262	keyboard movement is now quite faithfully zgv-like, I think it's
1263	worth it. :-) Had to move hide-selector to shift-z (the idea being
1264	it's a bit like zoom but in a different sense) to make room for
1265	hjkl; while I was at it, I changed hide to really be a hide/unhide
1266	toggle.
1267
12681999-07-28  Russell Marks  <rus@cartman>
1269
1270	* main.c: bugfix after trying it on my 486 - it wasn't giving GTK+
1271	a chance to run after creating the `Updating Thumbnails' window
1272	until after the first file's thumbnail had been checked/updated,
1273	leaving the window briefly blank. (Since the first file is almost
1274	always `..', it takes very little time to deal with (as dirs don't
1275	have thumbnails), so much so that I hadn't noticed this delay at
1276	all on cartman.)
1277
12781999-07-27  Russell Marks  <rus@cartman>
1279
1280	* main.c: now supports loading picture(s) from command-line. Works
1281	by faking up a selector `directory' containing them, and hiding
1282	the selector.
1283
1284	* main.c: can now explicitly hide selector from viewer. Probably
1285	more useful than auto-hide mode for most people, I'd have thought;
1286	you might find having the selector visible fine generally, but
1287	still occasionally need the full window for a big image.
1288
1289	* main.c: finally, has create/update thumbnails. Also added
1290	`pastpos' stuff from zgv, which remembers where you were when you
1291	last left a previously-visited directory.
1292
1293	* main.c: viewer now uses pixmap background. This causes some
1294	difficulties (which I've mostly managed to work around - er, I
1295	hope :-)), but makes scrolling much easier on the eye. Also
1296	disabled "Reading thumbnails" messages by default and added option
1297	to enable them.
1298
12991999-07-25  Russell Marks  <rus@cartman>
1300
1301	* main.c: middle button now does `exit viewer', like Esc (and
1302	equivalent menu option). Handy when in auto-hide mode.
1303
1304	* main.c: added auto-hide mode. Rather nice for those of us
1305	running in relatively low resolutions. :-) However, since I reckon
1306	you're unlikely to want it if you're running in 800x600 or
1307	greater, and since it can be a little confusing, I've resisted the
1308	temptation to make it the default.
1309
13101999-07-24  Russell Marks  <rus@cartman>
1311
1312	* main.c: cleaned up some early kludgey stuff - in particular,
1313	removed the long-gone quit button (which until now was merely not
1314	shown, ouch :-)). It's still fairly kludgey in parts, but one
1315	thing at a time eh...
1316
1317	* main.c: fixed `losing' of current selection and focus row
1318	(the keyboard cursor) when sort order is changed. Also fixed
1319	the focus to match selection in this case, and in the other
1320	cases where it was previously a problem (next/prev image, and
1321	thin rows toggle).
1322
13231999-07-23  Russell Marks  <rus@cartman>
1324
1325	* Kludged around apparently-buggy imlib GIF support (in v1.9.5 at
1326	least) by adding my own GIF support, via readgif.c and wrapper
1327	mentioned below. Hopefully this will only be a temporary kludge
1328	until imlib gets fixed. :-) PNGs with few colours also have
1329	problems, but that's not so easy to work around, unfortunately.
1330	(Rather, it is in theory, but PNG is a much harder format to read;
1331	readgif.c is only about 400 lines.)
1332
1333	* main.c: now has next/previous image in viewer (on space and b
1334	rather than zgv's space and del, as a) del/backspace issues are
1335	non-trivial in X and b) I couldn't get del to work :-)).
1336
1337	* Added mrf support via readmrf.c and wrapper for
1338	gdk_imlib_load_image(). This is probably the only way mrf support
1339	would get added, as imlib only seems to support the most popular
1340	formats `natively'.
1341
1342	* main.c: finally you can change dir once it's started. :-) Also
1343	added custom sorting routine (so dirs come first, thank ghod for
1344	that), and different sorting orders (as in zgv).
1345
1346	* main.c: loads of changes. Fixed memory leak the size of a planet
1347	(50 meg X server, anyone? :-)), made image draggable with the
1348	mouse, added right-button menus for both selector and viewer,
1349	added `thin rows', `status bar' and `zoom' options, and probably
1350	lots more I can't remember right now.
1351
13521999-07-22  Russell Marks  <rus@cartman>
1353
1354	* First, really crap version. (Several more really crap versions
1355	to follow. :-))
1356