-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
2663 lines (1976 loc) · 114 KB
/
CHANGELOG
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
Revision History
----------------
XV 3.10a bug-fix release 12/29/94
----------------------------------
Bug Fix: Problems loading JPEG files in 8-bit mode on some systems.
(Rick Richardson ([email protected]))
(Chad R. Larson ([email protected]))
Bug Fix: Added '-pkludge' command line option and 'popupKludge' boolean
resource. If true, selects the 'old-style' pop-up window positioning
code. The various popup windows should appear with the Ok button
(or whatever) centered around the cursor. If the windows routinely
pop up slightly off-center from the cursor, try turning this on.
Bug Fix: '3' and 'Q' characters in the Text Annotation character set were
boogered up... (Sidik Isani ([email protected]))
Bug Fix: '-iconic' option wasn't working.
(David Pesetsky ([email protected]))
Bug Fix: Didn't properly read greyscale RLE files.
(Robert Cunningham ([email protected]))
Bug Fix: 'AutoCrop' on 24-bit images could produce 0x0 images. A problem!
(Leon Shaner ([email protected]))
Bug Fix: GIF reader would blow up if there were multiple comments.
(Markus Gyger ([email protected]))
Bug Fix: Behavior under virtual window managers may be improved.
Enhancement: Text in 'temperature gauge' (during slow operations) is now
XOR'd on, so it isn't obscured by the filled area of the gauge.
(Jerry Whelan ([email protected]))
Enhancement: man page for vdcomp written
(James Ralston Crawford ([email protected]))
Enhancement: PCX code can now read 24-bit PCX files.
(Dave Cohrs ([email protected]))
Portability: Patch for Linux (David Hankins ([email protected]))
Portability: Patches for ISC 4.0 Interactive/SunSoft Unix
(Jack Bailey ([email protected]))
Portability: Compiler noise (from Sun's Professional C compiler) cleaned up.
(John Fritz ([email protected]))
Portability: Many nits picked by Pyramid compiler
(Chad R. Larson ([email protected]))
Portability: Some malloc's in xvfits.c needed casting.
(Bill Silvert ([email protected]))
Portability: Further VMS problems solved.
(Rick Dyson ([email protected]))
Portability: select() on HP-UX 9.x expects (int *) instead of (fd_set *)
(Richard Allen ([email protected]))
Portability: Removed 'const' from second parameter in decl. for decode_run()
in tif_fax3.c. (Glenn Spargo ([email protected]))
Portability: Added 'fcntl.h' to xv.h, as some systems may not have O_RDONLY
declared elsewhere. (Mitchell Blank ([email protected]))
Portability: Font selection strings in xv.c didn't have enough '*'s in them.
Would fail on some X servers.
(Rick Richardson ([email protected]))
Second XV 3.10 Public Release 12/22/94
----------------------------------------
Bug Fix: Make_xv.com in vms directory wouldn't build xvxpm.c or xvfits.c
(and thus, XV!) (Rick Dyson ([email protected]))
Initial XV 3.10 Public Release 12/21/94
----------------------------------------
Bug Fix: Greyscale downsampling bug in JPEG code fixed.
(Tom Lane ([email protected]))
Enhancement: Made Grab command trap 'BadMatch' errors and display an
appropriate error message (rather than exiting with a fatal error).
(Eric Demerling ([email protected]))
Enhancement: Cleaned up/reorganized Makefile
(Tom Lane ([email protected]))
Portability: BSDI doesn't have malloc.h. Fixed xv.h and vdcomp.c
(Chris Ross ([email protected]))
Bug Fix: Additional VMS schnauzer fixes.
(Rick Dyson ([email protected]))
Second XV 3.10 Beta Release
----------------------------
Portability: xvxpm.c module rewritten to include its own hash-table
routines, as 'hsearch()' is not available on all systems.
(Chris Ross ([email protected]))
Bug Fix: Big stupid mistake in xvtiff.c module. Too embarrassing to mention.
(Michael Weller ([email protected]))
Bug Fix: failing to store clipboard contents in an X property was
(incorrectly) exiting the program as a fatal error, rather than
falling back to using a '.xvclip' file in your home directory.
(Eric Demerling ([email protected]))
Docs: Mentioned 'FITS' format, removed claim that rotate 90-degree commands
will rotate selected area, added additional credits.
Bug Fix: Cleaned up xvxpm.c - potential for infinite loops on broken
images. Also, now handles 'None' better, and mentions when it can't
parse colorspecs.
Bug Fix: When viewing large images, a rotate may not have properly redrawn
the image. Also, it could lose the proper aspect ratio.
(Michael Weller ([email protected]))
Bug Fix: 'Expansion' and 'Resolution' fields in xv info window weren't
getting updated when image was rotated.
Bug Fix: If you were in Perfect or OwnCmap color modes, and switched to a
root display mode, it didn't (correctly) switch to Normal colors.
(Michael Weller ([email protected]))
Added Feature: XV can now read and write greyscale FITS images
(David Robinson ([email protected]))
Enhancement: XV can now read old Windows and OS/2 BMP files
(Eric Dumas ([email protected]))
Portability: now uses the Dec 8 re-release of IJG jpeg software (ver. 5a)
(Tom Lane ([email protected]))
Portability: need to include <sys/select.h> on aix systems ('_AIX')
(Eric Demerling ([email protected]))
Portability: NetBSD objects to 'extern char *sys_errlist[];'
(Chris Ross ([email protected]))
Portability: CBSIZE (in xvbutt.c) is defined on some systems in param.h.
Changed to XVCBSIZE. (Chris Ross ([email protected]))
Portability: 'Makefile' in TIFF directory assumed 'ar' lived in /bin. This
isn't necessarily so. It'll now just search the path.
(Michael Weller ([email protected]))
Bug Fix: recursive update on VMS didn't work right
(Rick Dyson ([email protected]))
Initial XV 3.10 Beta Release
----------------------------
Added Feature: XV now comes with 'xvpictoppm' program, which reads XV
thumbnail files and converts them to standard PPM format.
Added Feature: XV can now read the XWD format. Whether or not this will
still be an issue, given the whizzo new 'Grab' command, I don't
know. XV does *not* write XWD files, as XWD is not a format to be
encouraged. (Markus Baur ([email protected]))
Bug Fix: 'xv -poll -root <filename>' would thrash wildly if the file didn't
exist, or wasn't loadable. Now behaves better.
Added Feature: 'Recursive Update' command in visual schnauzer. Does an
'update' command in the current directory, and recursively down into
all subdirectories. Keyboard Equivalent: ^e
Bug Fix: Potential problem when allocating colors for std colormap.
(Yasuhiro Imoto ([email protected]))
Bug Fix: Cropping a large area while zoomed in could result in enormous,
potentially off-screen images. A bad thing.
Added Feature: Added a 'Select Files' command in the visual schnauzer,
which lets you select files by name. The wildcard character '*'
(which matches any arbitrary char sequence) is supported. This
gives you an easy way to select all the JPEG files ('*.jpg'), for
example. Keyboard Equiv: ^f
Bug Fix: Added support for 15-bit-per-pixel displays, and probably fixed
support for 15/16-bit LSBFirst displays. At least on 80x86-based
machines, which is where nearly all 15/16-bit displays have to be.
(Michael Weller ([email protected]))
Bug Fix: Somewhere along the line, the file name list (in the controls window)
was getting redrawn at least one time too many, when you loaded
files from the schnauzer.
Added Feature: Added a 'despeckle' algorithm (median filter).
(Colin Plumb ([email protected]))
Added Feature: XV now can read and write the XPM format. It can read XPM
images with any number of colors, though it only writes XPM images
with a maximum of 256 colors. (If your image has more than 256
colors, it is automatically quantized.) While the XPM format lets
you do arbitrary-depth images, it's not really well suited for
images with more than a small number of colors, so the 256 color
limitation shouldn't be a big problem.
(Chris P. Ross ([email protected]))
Added Feature: Added a 'Origin' button the the 'Save Postscript...' window.
Positions the image aligned at the bottom-left corner of the page,
which is the origin (0,0) in the Postscript world. May make certain
desktop-publishing operations easier if you're using XV to generate
EPS files for incorporation into page-layout software.
(Michael Lipscomb ([email protected]))
Enhancement: Added 'xv.pspaper', 'xv.psorient', and 'xv.psres' options to
set default behavior in the 'Save Postscript..." window.
pspaper sets the default paper type, and can be any of the following:
8.5x11 A4 B5 A3 8.5x14 11x17 4x5 35mm
psorient sets the default paper orientation, can can be either
'portrait' or 'landscape'
psres sets the default resolution (dpi) and can be an integer
between 10 and 720, though not all values are attainable, as the
resolution is controlled by the 'scale' dials, which must take on
integral values. All the common resolutions are available, however
(72dpi, 75dpi, 100dpi, 300dpi, 600dpi, etc.)
Added Feature: Added a '-nodecor' option (and boolean 'xv.nodecor' resource)
that lets you turn off the window 'decorations' (title bar, menu box,
minimize and maximize buttons) on the XV image window, in MWM.
When these things are on (by default), the prevent the image window
from being made smaller than some MWM-specified minimum width, which
can be a real pain when working with tiny (< 100 pixels wide) images.
Turning this option on disables these decorations, and lets the image
window be any size whatsoever. (This only works for MWM. TWM doesn't
have this problem, and OLWM doesn't appear capable of doing this
on the fly, on a per-window basis. For OLWM, use the
'owlm.MinimalDecor: xv' resource. Note this affects *all* xv windows.)
Bug Fix: Input focus wasn't working out correctly under OLWM.
Bug Fix: "-rotate" command line option was only applied to the first image
loaded. (Osama ([email protected]))
Enhancement: The 'slow' 24->8 algorithm now uses code derived from the IJG
jpeg distribution, which is a considerably better implementation of
the median-cut algorithm than XV was using before.
Enhancement: Version 5 of the jpeg library (which XV now uses) supports
a quick image subsampling 'thing' which XV now uses when generating
Visual Schnauzer icons. Practical upshot: creating icons from jpeg
files is now many times faster.
Bug Fix: 'xv -hist -expand <x>' would crash. Doesn't do that any more.
(Ulf Cahn von Seelen ([email protected]))
Enhancment: XV can now read 16-bit per pixel 'raw' PGM and PPM files.
(David A. Clunie ([email protected]))
Enhancment: In the Schnauzer, if you hold 'shift' while hitting the spacebar,
it will select (and load) the next file, while keeping the previous
file selected. This lets you (somewhat more easily) build groups
of files to be moved or deleted, as you can just hold shift, and
space your way through all the files. Shift click to de-select
files that should be skipped.
Added Feature: Added an 'annotate' command that lets you put text on an
image. Keyboard Equivalent: 'A'. To use it, select a drawing color
using the 'dropper' (middle click on image), and press the 'A' button.
Enter a string and hit Ok (or return). If there is a current
selection, the text will be scaled to fit the selection. Otherwise,
a selection box the size of the text will be created in the middle
of the image window. In this case, position and resize the selection,
as you see fit, and issue a 'Paste' command (meta-v) to place the
text on the image. Note: if you want to change the color of the
text, choose a new color and do the annotate command again.
It's somewhat awkward, but it's time for a new release. It'll probably
get polished in the next release...
Change: 'AutoCrop' keyboard equivalent is now 'C' instead of 'A'.
Added Feature: Added 'smudging'. Shift-right click (and drag) on the
image (it's best if you zoom in first), and you can do a localized
blur around the cursor. Note that this only works on 24-bit images.
If the current image is a 8 bits deep, it will be converted into
a 24-bit image first, automagically.
Added Feature: Added rudimentary image painting. You can now paint
arbitrary curves (or straight lines) by doing a shift-middle click
(and drag) on the image window. The pen will draw in whatever the
last color picked up by the 'dropper' (middle click on image) was,
(just like the 'clear' command). Shift-middle will draw curves.
Shift-ctrl-middle will draw a connected series of line segments.
Release and press ctrl to draw unconnected line segments.
Note: there's no direct way to paint in any arbitrary color. The paint
color must exist in the image *first*. One way of adding colors to
an image is via the 'Pad' command. Try padding with 'bggen', using
the 'Color Assortment' default to get a reasonable collection of
different colors added to the image. Later you can pad the image
back to its original size to get rid of the colorful borders. BE SURE
to switch to 24-bit first...
Change: Changed 'Standard Colormap' (used whenever viewing 24-bit images on
a non-TrueColor/DirectColor display) from a 6*6*6 colormap to a 4*8*4
colormap. It uses fewer colors (128 instead of 216), and produces
better looking images (as the 2 extra green values more than make up
for the 2 fewer red and blue values). It also looks somewhat better
when you use '-stdcmap' with '+vsperfect' (ie, have the schnauzer
share the stdcmap), as the 4*8*4 maps closer to the 8*8*4 used
internally by the schnauzer than the 6*6*6 did.
Enhancement: Added a 'trashcan' to the Visual Schnauzer. You can now (also)
delete files by dragging them to a trashcan. You'll be asked for
confirmation, the same as the 'Delete' command.
Change: 'unknown' files in the browser are now shown as 'plain' files.
Change: Moved a couple of keyboard equivs. 'p' now pops up the 'go to page'
dialog (when viewing a multi-page document) (was ^P).
^P is the keyboard equiv for the Print command.
Meta-a is the keyboard equiv for the Apply command (in the color
editor). (was ^P)
Added Feature: Added a 'Print' command. ("Finally!", I hear many of you
saying.) Keyboard equiv '^P'. Quicker and easier to use than
the previous method (ie, saving PostScript to "| lpr"), even though
that's how it still does the trick. Much more intuitive for
Joe User, who wouldn't know a pipe if you hit him over the head with
one...
Enhancement: When tracking pixel values (dragging the middle button
around on the image window), it now displays the distance of the
current point from where you originally clicked in a pair of
square brackets (ie, '[ -5, 37]') at the end of the line. Handy
for measuring image features.
Bug Fix: XV now supports both the 'cut buffer' and the 'selection' methods
of doing text cut-and-paste. (ie, the 'CutRes' command, and
tracking pixel values). Prior to this, pasting either of those
things into an xterm may or may not have worked, depending on
whether another xterm had a current selection.
Bug Fix: (Sort of). Now that XV tries to grab a good visual, rather than
just using the default, it may now pick a 24-bit visual on machines
where the root window can only hold an 8-bit image. In these cases,
it will disable the 'root' choices, unless you start XV with
the '-root' option, in which case it will choose a root-compatible
visual. Not optimal, but better than it was...
Enhancement: XV now displays a 'working' icon when the image window (or
the control window, if there is no image window) is iconified and
XV is in the middle of a long operation (smoothing, loading a jpeg,
running an algorithm, etc.) The icon changes back to the normal
icon when the operation completes.
(Idea: Bob Boag <[email protected]>)
Enhancement: It now displays what mode (8-bit or 24-bit) it's currently
in, in the controls window and the info window.
Added Feature: Changed PadImage command to allow 'blended padding' (ie,
not-fully-opaque), in several modes (RGB, Hue, Sat., Int.,).
In the HSV modes, it only pastes/blends the specified component
of the background fill. You can get a variety of weird effects.
Ferinstance, take a grayscale pic, and pad it with a bggen'd
RGB rainbow, using Hue mode and Opaque=0.
Added Feature: Added a 'Smear' algorithm. Keyboard equiv 'meta-S'.
Added Feature: Added a 'Sharpen' algorithm. Keyboard equiv 'meta-s'.
Bug Fix: Substantially improved performance on DirectColor displays.
(Read: 'it works at all') It's been tested on a 24-bit DirectColor,
and an 8-bit DirectColor visual. It works on those, at least.
(TrueColor is still the recommended visual type, though since XV now
sniffs around for a TrueColor visual, it'll probably Do The Right
Thing by default. Certainly that's the design.)
Added Feature: Added a 'PadImage' command (keyboard equiv: 'P'). Lets you
make an image larger *without* rescaling it, by creating a new
image of the specified size and pasting the original image onto the
center of the new image.
Currently, the new background can either be a solid color, the
result of running 'bggen', or an image file in any of the supported
(loadable) image formats. The resulting image will be the same 8/24
bit mode as the original image. As such, it's generally recommended
that you switch to 24-bit mode before doing the Pad command, for best
results.
Also, there are associated X resources: 'xv.pad.TYPE.val[0-9]'
and 'xv.pad.TYPE.name[0-9]', that let you specify the values
and names of additional entries in the 'Default' menu in the
Pad dialog box. 'TYPE' can be either 'color', 'bggen', or 'load',
depending on which 'method' of background generation you're using.
Added Feature: In 'bggen', you can now specify colornames as with other
X programs (ie, by name ('red'), or by value ('#ff00ff')). Note
that the '#' character is treated specially in some shells, and
probably need to be escaped with a '\' (or wrap single-quotes around
the whole value)
Added Feature: In 'bggen', added '-G geom' option to specify a 'repeat'
geometry. If given, the program generates its gradient into a
small (-G geom) image, which is 'center-tiled' into the
main (-g geom) image.
Change: In 'bggen', change '-s' option to '-h'. Screw backward compatibility,
it makes more sense.
Enhancement: Massive reorganization of the 'xv controls' window. Made room
for new command buttons (cut, copy , paste, clear, PadImage, About XV,
etc. simplified appearance by tossing many buttons into new 'menu'
buttons ('Root', 'Windows', 'Image Size').
Added Feature: Added a 'show/hide hidden files' toggle in the schnauzer
windows. (When enabled (as it is by default), it hides all files
beginning with a '.'. As such, it's Unix-centric, but so is the
rest of the program...)
Bug Fix: When 'dragging' files in the schnauzer windows, the window could
scroll entirely too quickly (on a fast machine). Added a limit.
Bug Fix: Fixed 'window-centering' code (that which pops up windows with
an appropriate button centered under the mouse, such as the save
window), so that it correctly positions the window. It works on
a DEC Alpha running OSF 2.0, under Mwm, Olwm, and Twm. Hopefully,
it'll work for you!
Enhancement: Added code to display keyboard equivalents in the various
menu buttons.
Enhancement: Added keyboard equivalents for remaining algorithms, just to be
consistent. The equivs are listed in the algorithms menu, and
all use the meta key.
Enhancement: Got rid of the 'Blur*' choices on the Algorithms menu,
and replaced it with a single 'Blur' routine that prompts for a value,
making it cleaner, and more versatile, with only a slight convenience
trade-off. Keyboard equivalent: 'meta-l'
Added Feature: Added a nifty 'Pixelize' algorithm. (Keyboard equivalent:
'meta-p'). Again, operates on the current selection, if any,
otherwise it operates on the whole picture. Now you too can make
photos look like their from those 'real-life cop shows'.
(Non-U.S. folks can just ignore that cultural reference.) Anyhow,
one neat feature is that it the pixels don't have to be square.
Try something like '16x1' for a neat effect.
Added Feature: A 'save selected area' checkbox in the save window. Lets you
easily save portions of an image (without cropping, etc). Two notes:
if you save 'at displayed size' (the default), only the area of the
selection that is visible in the image window will be saved.
Alternately, if you save 'at normal size', you *can* have the selection
go off the edges of the displayed image (or subimage).
Enhancement: You can now enter negative values for the Gamma command in
the graphs in the color editor. Negative values produce the same
curve as their corresponding positive values, except that they are
horizontally flipped. (ie, the curve starts at the top and goes
down). (Alan Blanchard ([email protected]))
Bug Fix: Memory leak if '-ncols 0' on a > 1-bit display
Change: In the Save window, moved 'File list' checkbox into the Format menu.
Enhancement: You can now type TAB key in Load/Save window to do automatic
filename completion. It only for 'simple' filenames (ie, no '/'
chars, no pipes, no '~', etc.), but it's still a very handy thing.
New Feature: Added 'Rotate (Copy)' and 'Rotate (Clear)' algorithms (keyboard
equivalents 'shift-meta-t' and 'meta-t' respectively) that let
you rotate the image (or the current selection) by any arbitrary
amount. The only difference between the algorithms is that the
second one clears the old selected area first (equivalent to:
'cut, rotate, paste'), whereas the first algorithm is equivalent
to 'copy, rotate, paste')
Enhancment: Added 'meta-u' keyboard equivalent for 'Undo all' algorithm.
Enhancement: 'Flip Horizontal' and 'Flip Vertical' commands now operate on
selected area, if any. (Otherwise, they do the whole picture.)
Enhancement: Put a 'progress meter' into most of the potentially
time-consuming functions (algorithms, smooth, resize, etc.)
Bug Fix: The 'Oil Paint' algorithm now does the Right Thing on color
images. (Simply running the grayscale algorithm on the red, green,
and blue planes separately was the Wrong Thing, as it introduces
goofy fringe effects in colors that weren't originally in the image).
Added Feature: New 'blend' algorithm (keyboard equivalent: Meta-b). Takes
the current selection (or the whole pic, if no selection), and clears
the rectangle such that the edges remain the same color, the center
becomes the average color of all the edge pixels, and all other
pixels get an appropriate color based on their distance from the edge
and their distance from the center.
Enhancement: Algorithms (selected from the 'Algorithms' menu) now will only
affect the selected area, assuming there is a selection. Otherwise,
they will affect the entire image, same as they used to.
Change: After deleting the last file in the 'xv controls' list, it will
go back to displaying the XV logo.
(Tom Hinds ([email protected]))
Bug Fix: Writing GIF files in the B/W Dithered color mode would result in
black & white getting reversed.
(Thomas Braeunl ([email protected]))
Enhancement: If you accidentally start tracking a 'zoom in' or 'pan'
rectangle, releasing the Ctrl key will abort the operation.
Enhancement: 'Meta-8' now toggles between the 8 and 24 bit modes.
Change: If you specify '<xvlogo>' as the filename in the load window, it will
re-load the XV title image.
Bug Fix: If the last file in a list was broken in some way and was either
shown as Text, or not shown at all, the Next/Prev buttons weren't
getting enabled/disabled appropriately.
(R.P. Rodgers ([email protected]))
Enhancement: Used to be, when you saved a GIF (or other 'simple' format with
no format-specific dialog box), XV would stick the 'saved' filename at
the end of the 'xv controls' list. However, if you were in the
middle of a bunch of files, this would cause you to 'lose your
place'. Folks complained. XV now does the Right Thing (tm). When
you save (in *any* format) it adds an entry to the end of the list,
but does not move your selection. When you *load* a new file (via
the load or schnauzer windows), the name also gets stuck at the end
of the list *and* the selection is moved.
Change: As the default cursor in the image window is now the 'arrow' cursor,
the cursor affected by the '-cursor' option/resource is now the arrow
cursor used in all windows.
Enhancement: XV now comes with version 3.30 of the libtiff TIFF library.
This version should run correctly on 64-bit machines. Note, however
that there the TIFF library no longer has any non-ANSI C support,
meaning you *must* have an ANSI C compiler (ie, gcc) to compile it.
This should *not* be a big problem in 1994...
Enhancement: Load and Save 'windows' now point to separate directories. Such
a simple, obvious misfeature, I don't know how it's survived this long.
(Big Hint: The author doesn't actually *use* the program very much!)
Enhancement: Modified/improved 'selection' rectangle handling (formerly
called the 'crop rectangle'). It now flashes, making it much
easier to find. It also stays around when you zoom, unzoom,
pan, or resize the image. This lets you draw a selection, and
zoom in on the corners (or whatever), and get the selection positioned
perfectly before doing the crop (or whatever).
Added Feature: XV now can read and write uncompressed 24-bit Targa files,
interlaced or non-interlaced, with the origin in the
bottom-left or top-left (by Derek Dongray ([email protected]))
Change: Redesigned the load and save windows (okay, so it's really only
one window...). The number of radio buttons for different
image formats was getting out of hand, and taking up a lot of
valuable screen real estate. The new load/save window is smaller
(well, the save is smaller, the load is now the same size as the
save), cleaner, has room for 6 more lines in the directory window,
and has a fish in it. A win, by my book.
Bug Fix: Found (and killed) memory leak in the Schnauzer, which would
occur during icon generation
Bug Fix: IRIS RGB i/o code didn't work on 64-bit machines.
Added Feature: '-RM' command line option (no X resource equivalent).
When specified, upon exit XV will delete *all* files listed on
the command line. Handy if you're writing a program, and you
want to use XV to display graphics automatically. You write your
image(s) out, fork off a background XV to display the image(s),
and when the user quits XV, the image files will be removed, saving
you the trouble of cleaning up the files yourself.
Added Feature: Nifty new 'Grab' dialog box whenever you issue the Grab
command. You can now specify a grabDelay from within XV, and you
can also automagically hide all XV windows during the grab.
Also, now supports 'autograb' command, which waits the specified
delay time, and then grabs whatever window the cursor happens
to be in at the time. This gives you a way to capture popup menus,
rubber-band selections, and other things that require the mouse
button to be held down. (Note: AutoGrab searches upward and grabs
the 'top-level' window that the cursor is in, rather than just the
immediate child window, as it's far easier to take too much and
throw away the extra than to take too little...)
One note: between the time a Grab or AutoGrab command is issued,
from the dialog box, and the time that the command complets, all
'image file changing' commands ('Next', 'Prev', 'Load', etc.) are
disabled, (as is Grab), for perfectly good reasons.
Enhancement: The '-expand' option (and the 'xv.expand' resource) now takes
either a single value (as it used to), or a pair of values
separated by a colon. This lets you set different horizontal and
vertical expansion/compression factors. (eg, '-expand 3:-4' will
make the displayed width 3 times the image width, and the displayed
height 1/4th the image height.)
Change: 'Relaxed' floyd-steinberg dithering when displaying 24-bit images
(in 24-bit mode) on non-truecolor displays. Fewer goofy artifacts.
Enhancement: Now (unless '-nostat' is specified) stats filenames specified
on the command line. Only 'plain' files will be added to the
list of filenames. This lets you type 'xv *' in a directory
with subdirectories, and not have the subdirs added as (unloadable)
files.
Change: Change 'static char' in all bitmap files to 'static unsigned char',
as some compilers object to values > 0x7f being assigned to signed
char's.
Change: Added 'click right button to open menu' string in the XV logo
image, just to make things a little more obvious.
Added Feature: Changed command-line argument handling. All of the
'flag' options (-perfect, -smooth, etc.) now take '+' or '-' as
the first char of the option name. If you use '-' (ie, '-perfect')
it *forces* on the option (it used to toggle the option on or off).
Similarly, if you use '+' as the first char of the option ('+perfect')
it forces *off* the option. This lets you put the program in a known
state (regardless of what X resource settings you may have set up).
Handy for sysadmins who want scripts using XV to behave the same
no matter what X defaults the users may have set up.
(idea: Peder Langlo ([email protected]))
Change: XV no longer looks in '.Xdefaults-machinename' as a place to find
your X resources. The 'gethostname()' call was leading to
portability problems, and in any event, you should load up your
resources into the resource database (via 'xrdb') when you log in,
the way God intended...
Added Feature: When cropped (or zoomed), ctrl-Middle in the image window
will let you pan the visible region of the image around, which is
much cooler than zooming out and zooming back in on a different
area. (idea: Peder Langlo ([email protected]))
Enhancement: There's now a '..' entry in the load/save window file list,
to make maneuvering slightly easier.
Added Feature: XV now can read and write uncompressed 24-bit Targa files
(by Derek Dongray ([email protected]))
Enhancement: XV can now handle 16-bit greyscale TIFF files.
(Leon Avery ([email protected]))
Bug Fix: Memory leak in 24-to-8 bit conversion routines found and removed.
(Scott D. Heavner ([email protected]))
Enhancement: XV now has a 'chdir' button (and menu item) in the Schnauzer
window. It lets you directly chdir to some other directory without
going through the old 'up to the root and then down one dir at a time'
process.
Change: Typing '^C' in schnauzer windows now does a 'chdir' command, rather
than opening/closing the 'xv comments' window. To get the comment
window, type '^C' in the image window.
Change: XV now eats BadWindow errors on the X_GetProperty request.
These happen on certain SGI X servers after the 'snapshot' program
has been run. The window hierarchy gets trashed by snapshot.
(Run 'xlswins' if you want to see this.)
(Ben Simons ([email protected]))
Bug Fix: The 'edge detection' algorithm wouldn't detect edges along the \
direction. Better edge detection algorithm has been added. (Though
the old is still there for the 'embossing' effect.
(David Robinson ([email protected]))
Bug Fix: A4 and B5 paper sizes in PostScript save dialog were slightly wrong.
Enhancement: XV now supports 'gzipped' files, as well as 'compressed' files.
Needless to say, you need to have the 'gunzip' program installed
on your system for this to work.
(Jean Liddle ([email protected]))
Enhancement: Added 'A3' paper size in 'save as PostScript' dialog box.
Bug Fix: BMP file reading wasn't working on files created by ImageMagick.
(Roy Johnson ([email protected]))
Enhancement: XV now sniffs out whether or not you have a 24/32 bit
TrueColor or DirectColor visual, and if so, uses it by default
(rather than always using the 'Default Visual' of the display,
which is generally an 8-bit PseudoColor visual, even on 24-bit
systems).
Also, both the '-visual' option and the 'xv.visual' X resource now
also take 'default' as a value, which means 'use the default
visual of the display', for folks who want 'the old behavior'.
Change: Modified the 'Timer()' function in xvmisc.c to use select() instead
of 'setitimer()', which let me get rid of all the FOO_SIG macros
and such in xv.h, and basically get rid of one of the primary
portability annoyance.
Bug Fix: In the Schnauzer, when generating icons, if it decides a file
is potentially an XBM file, loads it, finds out it isn't, it will
be displayed as an UNKNOWN icon (?), instead of an ERROR icon.
Change: When tracking pixel values in the image window, it now displays
the color of the pixel in Hex, as well as in decimal, so that you
can use this value directly in X color specifications, without
needing to do the dec->hex conversion by hand.
Bug Fix: In the 'xv load' window, if you clicked below the 'Load All' button,
you could get a 'Prev Name' button to appear.
(Erwan Moysan ([email protected]))
Bug Fix: .xvpics subdirectories are now created with the same permissions
as their parent directories. Likewise, thumbnail files (in .xvpics
dirs) are now written with the same permissions as the original
files.
Bug Fix: In XV 3.00, the PDS/VICAR module got screwed up somehow, and
no longer worked correctly. Fixed.
Change: Stuck SysV-style signal handler definitions and rand/srand defs in
xv.h, for better compatibility (David Brooks ([email protected]))
Bug Fix: 'Pass 2 color allocation' could potentially be performed on a
visual type with no colormap, which would be a bad thing, believe me.
Bug Fix: '-loadclear' wasn't working correctly
Bug Fix: Potential segmentation fault when Uncompressing files fixed.
(Dana Jacobsen ([email protected]))
Bug Fix: If printing XV-generated Color PS files on a Grey/BW PS printer,
the printer may have run out of memory, due to a memory leak in the
color->gray PS code. (Klaus Schnepper ([email protected]))
Bug Fix: The '-hist' and '-norm' options weren't actually working.
Bug Fix: If you loaded a GIF89 file with a lot of ignored-by-xv extensions,
and you didn't have the info or controls windows up, the constant
popping up of 'warning' messages was real annoying. They don't
do that anymore.
Enhancement: If you specify the '-quit' option, XV turns off any '*map'
options (-cmtmap, -cemap, -imap, etc.) you may have turned on,
as you won't have an opportunity to *use* any of the windows before
the program exits. No need to map them.
Bug Fix: XV now correctly positions the window on initial load (ie,
'xv -max' will now work again)
Bug Fix: When you loaded a new image, if XV felt a need to move the window,
it would draw the new image at the old window size, and then draw
it again at the new image size. This was a major inefficiency with
24-bit images.
Enhancement: 'Remove' key on DEC keyboards now functions like '^D', so it
can be used to delete files, etc.
Added Feature: XV can now read a variety of Amiga IFF ILBM formats.
(Thomas Meyer (i03a.zfn.uni-bremen.de)
Change: XV should now recognize PS files that start with '%!' (as it did) and
with '^D%!' (as generated by MS-Windows 3.1)
Bug Fix: If you use '-poll' and '-maxpect', only the first image would be
shown 'big'. (Bruce Labow ([email protected]))
Change: 'Relaxed' getwd handling. You can now maneuver through directories
even if you can't read the contents of one of the parent
directories (ie, mode 'rwx--x--x'). All parent directories must
have execute permission, however.
(Andrew Brooks ([email protected]))
Change: Cleaned up 'file type' handling code in source, which should make
it easier to build XV on 'non-standard' platforms.
(Cameron Simpson ([email protected]))
Enhancement: XV previously only recognized files that began with '#define'
as being (potentially) XBM files. It now also will treat files
that start with '/*' as potential XBM files, which should cover
nearly all the XBM files out there.
Bug Fix: If you moved or copied files from one schnauzer window to another,
and for some reason the files failed (ie, 'moving' from a write-
protected directory), the icons that failed to move would still be
lit (as they should be), but they didn't *think* they were lit!
Bug Fix: When moving/copying files via the schnauzer, it would always
create '.xvpics' subdirectories in the destination folder, instead
of "only when the source folder has a .xvpics subdirectory", as
was intended.
Enhancement: 'relaxed' the AutoCrop algorithm for 24-bit images. Since
24-bit images (JPEG, in particular) tend to have some noise in
them, the 'everything must be equal' criteria of the normal autocrop
algorithm would prevent any cropping from happening. The new
algorithm (which only affects 24-bit images) crops lines if all
the pixels are within a certain percentage of one and other.
(Paul Close ([email protected]))
Bug Fix: BMP file i/o fixed. 24-bit files weren't done correctly, and
certain files would blow up that Windows-based programs would
handle correctly. (Pesky vague format specifications...)
(John Walker ([email protected]))
Bug Fix: Unified 'cursor keys' into one function. Certain keyboards
generate an interesting variety of keysyms when you hit the 'pageup'
'pagedown', 'home', and 'end' keys (and shifted arrow keys), and
I had code to deal with that problem scattered around the source.
Practical upshot: 'pageup/down' might work in certain controls/
windows, and not others.
Bug Fix: XV would crash if you tried to grab a rectangular region of the
root window (and both the starting and ending points of the rect
were in the root window).
Bug Fix: Memory leak in xvpbm.c (Joe Peterson ([email protected]))
Bug Fix: XV would crash if you used '-nopos'
(Nick Sayer ([email protected]))
Change: All files in the distribution should be 14 chars or less (to
avoid SysV name-length limitations on some systems)
Change: Broke up exceedingly large functions in xv.c and xvevent.c,
as they tended to annoy compilers and optimizers...
Bug Fix: Use of GS_LIB in Makefile broke if folks had it defined in their
environment already.
Bug Fix: XV assumed that 24-bit deep visuals had 32 bits per pixel. While
this is generally true, apparently there are some servers that only
want 24-bit pixel values.
(Steven Schoch ([email protected]))
Bug Fix: It would crash if it tried to draw an MenuButton that had no menu
associated with it yet. (A timing issue that occurred on some
systems)
Bug Fix: If you tried to use '-root' and '-gamma' simultaneously, it'd
crash. Now it doesn't.
Bug Fix: On some systems, XV would crash when clearing an old root image
and installing a new one.
Added Feature: Additional options to 'bggen'. You can now specify the
size of the generated image with '-g geometry'. The generated
images are now by default in PPMRAW format. You can generate
'ascii' images by using the '-a' flag. You can now ROTATE the
generated image by any arbitrary amount with the '-r rot' flag,
where rot as a (counter-clockwise) rotation, in degrees.
Enhancement: 'bggen' has been fixed. It now automatically senses
the display size, and by default, generates an image of that
size. (PeterVG ([email protected]))
Change: In XV 3.00, I went to a somewhat faster (serpentine) color dithering
algorithm (used in conjunction with Smoothing on non-TrueColor
displays, when in 8-bit mode). No one much noticed the speed
improvement, and several people complained that images now looked
worse than they used to, so I've put it back the way it was.
(Kenny Zalewski ([email protected]))
Enhancement: If you are running XV in 'locked 8-bit mode', and you load a
JPEG image, XV will now use the JPEG quantizer, which produces better
results than the normal XV quantizers. This makes XV 3.00 behave
like it did in XV 2.21.
(Jim Lick ([email protected]))
Bug Fix: xvsunras.c still had some problems on 64-bit machines.
(Dave Hill ([email protected]))
Change: Twiddled code in xvsmooth.c. Certain compilers complained about a
potential divide-by-zero (not that it could ever happen, but try
telling the compiler that...)
Change: Twiddled code in xvps.c. Optimizer in IRIX-4.0.5 broke a
calculation. Expression has been simplified.
Bug Fix: YCbCr->RGB conversion in xvtiff.c wasn't being done correctly,
according to the TIFF 6.0 standard.
(Karsten Spang ([email protected]))
Portability: Added explicit typecasting to a few lines of xvtiff.c (HP
compilers objected.)
Portability: Changed intances of '#ifdef macII' in xv.h to '#ifdef aux'
(Declan A. Rieb ([email protected]))
Bug Fix: XV wouldn't correctly read XBM files with 1-digit-long values
(ie, '0x9' instead of '0x09'). Fixed.
(spotted by: Berthold Dettlaff ([email protected]))
Bug Fix: xvtiffwr.c now writes out XRESOLUTION and YRESOLUTION flags, which
are apparently required by some other tiff-readers
(Larry W. Virden ([email protected]))
XV 3.00a intermediate bug-fix release
-------------------------------------
Bug Fix: core dumps in schnauzer fixed. (br->lit wasn't getting zeroed
when you moved files to another directory)
Bug Fix: To vdcomp.c. Strings buffers to hold filenames were too short.
(Anthony A. Datri <[email protected]>)
Bug Fix: If you put an image using the Std. Colormap into the root window
(ie, a 24-bit image on an 8-bit display), and exited XV, the colors
were freed (and would get overwritten)
Bug Fix: 'Update' command in Schnauzer now checks both 'mtime' and 'ctime'
fields when comparing dates of a file and its thumbfile.
Bug Fix: XV load window didn't correctly handle 1-character top level
directory names (ie, '/u').
XV 3.00 Release
---------------
Enhancement: Faster 332 dither algorithm when displaying 24-bit images on
non-TrueColor/DirectColor displays.
Added Feature: 'trimming keys'. You can now easily trim off one pixel from
any edge of an image by pressing Ctrl and one of the arrow keys while
inside the main window. Now you can use the cropping rectangle for a
first 'rough cut', and do the precision work with the trimming keys.
Enhancement: Added '-grabdelay' command line option (no resource), which
lets you specify a delay between the time the 'Grab' command is issued,
and the time that the cursor changes becomes owned by XV, regardless of
what window it's in. This lets you hide the XV windows (or whatever)
before the actual screen grab takes place. The delay can be set
to 0 (the default) up to 15 seconds.
(Jason Berri ([email protected]))
Bug Fix: Was crashing if you handed it a gif with multiple images in it.
Change: Switched it back so that when you Delete a file in the xv controls
list, the next file in the list (if any) is automagically loaded.
Change: Broke huge series of 'else if's in xv.c into two halves. Broke some
compilers (on VMS and some PC Unixes)
(Rick Dyson ([email protected]))
Change: Improved resource-handling code. No longer necessary to
define X11R5, and should work on certain HP/Apollo workstations
where it didn't used to.
Change: Modifications to make XV somewhat more POSIX compliant.
(Mark W. Snitily ([email protected]))
Bug Fix: Changes to xvgrab.c to make it work on 64-bit machines.
(Matt Thomas ([email protected]))
Change: migrated all memcpy(), memcmp(), memset(), and bcopy(),
bcmp(), bzero() calls to xvbcopy(), xvbcmp(), and xvbzero()
functions in xvmisc.c. Necessary because the b*() routines
don't exist in Solaris, and not everyone has the mem*() routines
(and besides, memcpy() doesn't even work correctly)
Added Feature: Added '-icgeometry' cmd-line option (and 'iconGeometry'
resource) to specify initial position of the icon when you
start XV in '-iconic' mode
Added Feature: XV can now display multi-page (currently only PostScript)
files. If you are viewing a multi-page file, the title of the image
window will show 'page 1 of 37' (or whatever) as an indication.
You can use the PageUp and PageDown keys (Next and Prev on some)
on your keyboard to do page through the file, and you can type ctrl-P
to pop-up a 'go to page #' dialog box. These keys must be typed in
the image window.
Enhancement: Added '-name' command line option (no corresponding resource)
that lets you specify the string to be displayed in the image window's
titlebar. Useful if you're calling XV from some other program,
and you don't want the titlebar to say 'xv /tmp/prog2315a' or something
like that. (Idea from: Bill Silvert ([email protected]))
Added Feature: XV can now read and display PostScript files, as long as you
have the 'Ghostscript' package installed.
Added '-gsdev str', '-gsgeom geom' and '-gsres int' command-line
options (and gsDevice, gsGeometry, and gsResolution X resources).
Thanks to Michael Gleicher ([email protected]) for the idea,
and thanks to Harald Hanche-Olsen ([email protected])
and L. Peter Deutsch ([email protected]) for PostScript help.
Bug Fix: Minor memory leak in xvgrab.c fixed.
(Tony Sweeney ([email protected]))
Added Feature: Added '-drift dx dy' option (and 'driftKludge' resource)
for the benefit of folks who experience a 'drifting' of the
image window whenever it's resized, etc. If the window drifts down
and to the right, use negative values to compensate. If the window
drifts up and to the left, use positive values to compensate...