15 Jan 1996 HSET: Set a handle value. A bit easier to use than handle_value, since it creates a handle as needed. RES HGET: Get a handle value. This routine differs from handle_value most by being a function, making it possible to use handle values in expressions. RES 11 Jan 1996 XTEXTFILE: Same as below. RES XDATAFILE: Same as below. RES BOX1: Fixed some displays which broke in IDL 4.0 by adding /dynamic to the widget_label calls. RES 5 Jan 1996 YMD2DATE: Rewrote using dt_tm_mak to get all the formatting allowed there. RES 27 Dec 1995 CROSSI: Fixed a bug involving the mag window being available across multiple calls. RES 22 Dec 1995 GIFADD: Now allows jpeg algorithm for color combination (color_quanj). RES PRWINDOW: Modified to allow printing to 1, 2, or 4 pages. RES XVIEW: The print command now allows the image to be printed on 1, 2, or 4 pages. XOPTION: Added optional suboptions. If no suboptions given should works as before with a simple single column menu. To use the suboptions just give a list of suboption labels to the new keyword SUBOPTIONS, suboptions=['one','two',three']. The final settings of the suboption buttons are returned in the new keyword SUBSET=set where 0 means not set and 1 means set. By default 0 or more suboption buttons may be set. The suboption buttons may be made exclusive (only one set at a time) using the new keyword /EXCLUSIVE. In that case the returned button setting is just a single value, the index of the set button, -1 if none. These new options were added to allow the print command in xview to be able to print a window using 1, 2, or 4 pages. An example call: subset = 0 opt = xoption(title='Make a color '+txt,['OK','Cancel'],$ def=0, subopt=['Single Page','Two Pages','Four Pages'],$ subset=subset, /exclusive) Defaults to Single Page. The returned value of subset will be 0 for Single Page, 1 for Two Pages, or 2 for Four Pages. RES SETWIN: Fixed some minor bugs that messed up the layout. RES LINCAL: Added first letter of weekday and also setable charsize. RES 21 Dec 1995 GIFADD: Can now set number of colors to use (def=256). Also now uses scrolling window so big images may be handled. RES SET_SCALE: More minor list upgrades (added plots format and crop image). RES 20 Dec 1995 SEEDFILL: Fixed a minor bug, err flag not being returned. RES XVIEW: Removed /noextend from swindow call. RES XTEXTIMG: Removed /noextend from swindow call. RES XMERGE: Removed /noextend from swindow call. RES SWINDOW: Removed the keyword /NOEXTEND which was useful in the past on HP-UX IDL because the visible part scrolling windows were 32 pixels smaller than requested. Seems to be fixed now so extension dropped. RES SET_SCALE: Upgraded the listing of the embedded scaling to add some useful formats such as screen window position (in dev coords), tvrd format, and map_set limit format (for rect proj only). RES 18 Dec 1995 XVIEW: Fixed to bring working window to front of display. RES CBAR: Fixed the annoying scale change. This routine used to leave the X/Y scaling set to that of the color bar, not useful. It now saves the incoming scaling and restores it on exit. RES 15 Dec 1995 LS: Added new keyword SCALE_ON to allow scaling to be determined from a specified array instead of the image. This is a useful way to avoid flag values when scaling. RES IMGSCALE: Minor bug fix. Also fixed saturation color problem for negative scaling. RES 14 Dec 1995 PLURAL: New routine to handle plural items. Given the number of items this function by default returns '' if n is 1, else 's'. May specify the return text: single='ox', pural='oxen'. RES 13 Dec 1995 SUNPOS: New routine to compute the sun's azimuth and altitude for a given time and set of longitudes and latitudes. RES SUNJS: New routine, just like sun.pro but time is given in Julian Seconds instead of Yr,Mn,Dy,Hr. Just more convenient. RES 10 Dec 1995 CBAR: Now allows position to be given in device coordinates. If it is must also specify /DEVICE (just like for plot). RES IMGSCALE: Added saturation warning colors. Green means clipped at 0, red means clipped at 255. Use new keyword /saturate to activate. RES 5 Dec 1995 XVIEW: Now uses imgscale instead of adjct. RES IMGSCALE: New routine to do interactive image scaling. Can vary contrast and brightness using mouse. RES VCLIP: New routine to clip a given vector (or line segment) to a specified clipping window. Will return the part of the segment that falls within the window and a flag to indicate if such a part exists. Not intended for plotting (the builtin IDL clipping may be used for that, but for more general purposes. RES 3 Dec 1995 PUT_SCALE: Added updated routine to library (was modified aug 24 95). Update allows scaling to be specified using keywords. RES 30 Nov 1995 IMGMASK: Now uses color=-2 for crossi. RES XVIEW: Added imgmask to tools menu to do threshholding. RES PAINT: Changed crossi color to -2 for dotted lines. RES CROSSI: Added color=-2 option to allow dotted crosshairs. Finds darkest and brightest colors to use. Also now outlines central mag window pixel correctly (before it didn't always get dark and bright right). RES PAINT: Fixed to work with new xoption. RES XOPTION: Modified so that the specified default value is now one of the specified values. If not given values default to a array of numeric strings from 0 to 1 less than the number of menu items. If default not given it is the first element of the values array. This allows the default to be given as one of the values if values are given, makes the routine easier to use. RES 29 Nov 1995 IMGMASK: New routine to interactively threshhold an image in one of several different ways. Useful to create a binary mask of 0s and 1s based on a selected image value. Allows LT, LE, EQ, GE, GT operations of the image and a selected image value. RES XHELP: Minor change to ctach no arg case. RES WEBSHADOW: Now allows background color as an alternate to background image. Also dither is an option. RES 28 Nov 1995 MOVTXT: Upgraded to allow multiple colors and thicknesses. For thick text the displayed IDL code uses xyoutb. Useful for displaying text with a border: set color=1,100 and bold=4,2, gives thick text of color 100 inside a border of color 1. Two lines of code are generated for this case. RES XOPTION: Fixed so that if VALUES are given then DEFAULT may be (must be) one of the elements of VALUES. Makes it easier to use. RES COMMALIST: New routine to return a given numeric array as a comma delimited list useful for display. The inverse problem, convert a list of numbers in a text string, s, to an array, a, is done as: wordarray,repchr(s,','),a & a=a+0. RES 26 Nov 1995 XVIEW: Fixed widget label problems (see below). RES XCURSOR: Fixed display of coordinates which broke in IDL v4. Fix was very simple, just add /dynamic_resize to the label widgets affected. RES 24 Nov 1995 COLOR_QUANJ: New routine to combine Red, Green, Blue image components into a full color 8 bit image. Call much like color_quan, the built in routine. Writes components to a JPEG image ans then reads back as a color image. There are cases where color_quan gives poor results and this routine often does better for those cases (color_quan does not always do a good job when a main feature of interest has relatively few pixels). RES 21 Nov 1995 WEBTILE: Just renamed from gentile to webtile. RES WEBSHADOW: New routine to add shadows to web page images. Works bext for a fine scale random background. May have color shadows. RES TVPOS: Added new keyword RESOLUTION=[sx,sy] which can be used to specify the resolution of a bounding array if working directly with an array instead of the screen. Useful for subarray insertion. RES 20 Nov 1995 GENTILE: New routine to help generate Netscape background tile. Makes a periodic image which will seamlessly tile a web page. RES LINCAL: New routine to plot a multimonth calendar on one page. RES 14 Nov 1995 XMERGE: Inserted a -1 in xmer_boxes to try to avoid out of range coordinates. RES 10 Nov 1995 CROSSI: Fixed a minor bug in the data coordinate defined check. RES 9 Nov 1995 PAINT: Minor change: flood fill menu default is now fill. This allows multiple filling withing moving mouse so much. RES XVIEW: Now supports Sun Raster File images. RES 8 Nov 1995 GIFADD: New routine to add a specified set of GIF images together by adding their R,G,B components. RES 3 Nov 1995 PSINIT: Minor fix in printer listing. RES TIMEAXIS: Fixed a minor bug the caused missing minor grid lines. RES DETAB: New function to replace tab characters in a text string with the correct number of spaces. Useful to preprocess text with tabs. RES 1 Nov 1995 BOXAREA: New routine to select a rectangular area of the screen. Press a button to fix a corner and drag box open. RES 31 Oct 1995 DIST_SCALE: Minor upgrades. RES 27 Oct 1995 XVIEW: Fixed a minor bug in the JPEG loading: didn't handle a 1-d color table (gray scale). RES DROP_COMMENTS: Added new keyword: /TRAILING to drop trailing comments. By default drop_comments only drops comments with one of the comment characters in the first position. This option drops in addition the comments at the ends of lines. Be a bit careful that unintended parts of the text are not dropped. For example, the default comment characters would mess up something like a = b*c. RES 18 Oct 1995 SEEDFILL: Used the IDL built-in routine label_region to vastly simplify and speed up (10 times). RES SEEDFILLR: Used the IDL built-in routine label_region to vastly simplify and speed up (10 times). RES 17 Oct 1995 XVIEW: Upgraded: list pixel values, device cursor, data cursor to use crossi. RES CROSSI: Added /PIXEL keyword to display pixel value in status widget. Also displays R,G,B values of pixel. RES 29 Aug 1995 XVIEW: Added image name in fine print to printout. RES PRWINDOW: Added new keyword COMMENT=txt. To be used by xview to list full image name on printouts. RES 17 Aug 1995 HORI: Initial y value was not being used. Now fixed. RES POINT: New routine to plot filled point symbols. Works for 3-d. RES 14 Aug 1995 MAKES: Added DIGITS keyword. RES 7 Aug 1995 PRWINDOW: Now can print a gif image instead of screen. RES EVENT_LOG: Added SETFILE keyword to specify an event file name instead of using the default value. RES 1 Aug 1995 XVIEW: Added setwin to Color Print option. For multiple screen windows allows window selection. RES 24 Jul 1995 DATATYPE: Added support for double complex. RES 20 Jul 1995 SET_ISOXY: Added a new keyword LATITUDE meant for dealing with maps. If LATITUDE is used then the y values are taken as latitudes and x as longitudes. Only the x range is adjusted to get equal scaling in x and y. The x range is adjusted by cos(lat) after it has been been adjusted for window shape. RES 18 Jul 1995 FILLJUMPS: New routine to help fill in large jumps in data values. This routine returns the indices needed by the IDL interpolate routine. An example use. Let azi be an array of azimuths from 0 to 359 by 1 deg, and alt be a corresponding array of altitudes for the horizon as viewed from some point. Assume that alt is a function of azi but that it may have discontinuities (like buildings). This routine could be applied to the array alt with some threshhold value like .1 degree: filljumps,alt,.1,in alt2 = interpolate(alt,in) azi2 = interpolate(azi,in) Now alt2 will not jump more then .1 between adjacent values. RES 11 Jul 1995 EVENT_LOG: Added the keywords TAG and VALUE. These are used to return a specified word from the last line of the log file. For example: If TAG='.res' and the last log file line is: Mon Jul 10 16:28:59 1995 --- DK_T processing complete: dk_191_1.res Then VALUE returns 'dk_191_1.res'. This could be a useful way to pass values between IDL routines, especially if they are called in different IDL sessions. RES 10 Jul 1995 EVENT_LOG: Added /DIFFERENCE keyword to display the time difference between the last two log entries. RES 6 Jul 1995 EVENT_LOG: Minor change to event_log file name: day of month now has a leading 0 if needed (used to put a space in the event log name). RES DT_TM_MAK: Added 0d$ format to output monthdays with leading 0s if needed. So for July 6 'n$ 0d$' gives Jul 06. RES GET_COUNT: New routine to return a count value for a given tag string. Returns how many times the given string has been used as the tag in get_count. Saves counts in a count_file (def=count_file.txt in current directory). Useful for naming a series of related files. Another possibly useful routine for file naming is date2dn which returns the day of the year (as a string) for a given date. For example: date2dn(systime())+'_'+get_count('x') gives '187_1' on the first call, '187_2' on the second and so on (assuming 'x' is a new tag). RES DATE2DN: New routine to find day of year number from date. Returns result as a text string. Useful in naming files. RES 5 Jul 1995 MORE: Changed a loop limit for the /number option to long. RES 30 Jun 1995 XCURSOR: Added x,y to return exit position (also used for initial position). Also added new keyword /ORDER (see below). RES CROSSI: Added new keyword /ORDER to reverse device y coordinate. Default is 0 at the window bottom. With /ORDER device y is 0 at the window top. RES 26 Jun 1995 EVENT_LOG: Added two new keywords: DIRECTORY=dir to set the event log directory (def=current), and /TWOLINE to set two line output: time and event text. RES UPCASE1: New routine to capitalize the first letter of the given string. RES TXTGETKEY: Added the new keyword INDEX=indx which returns the index in the input array where a given keyword was found (-1 means not found). If this index is used as an index into the DROP_COMMENTS indices array then the original file line may be determined. RES DROP_COMMENTS: Added the new keyword INDEX=indx which returns the indices in the original input array of the lines which were not dropped. This is to make it easier to update such lines. RES 22 Jun 1995 TICKLEN: Fixed a minor bug that caused problems if no plots have been made before this routine called. RES PLOTPOS: Added new keyword NORIGIN=norig to set the origin in normalized coordinates. RES 22 Jun 1995 XVIEW: Minor help upgrade. RES 22 Jun 1995 DATA_BLOCK: Improved the error handling. Now can catch and ignore lines that cause I/O errors. Also displays bad line and gives its routine name and line number and how to fix it. RES 15 Jun 1995 XMERGE: Fixed some bugs in the text option. This option is still somewhat primitive, fancy text should be made before using xmerge and brought in as an image. RES XTEXTIMG: Now drops into editor if caption file does not exist. RES 26 May 1995 SHOWPATH: New routine to show the path of the routine that calls it. RES 23 May 1995 DATA_BLOCK: New routine to read a block of inline data. Reads data from the routine lines following the data_block call. This is somewhat like a FORTRAN data statement except that it is done everytime the routine with the data_block call is called. Should be useful for initializing tables. See built-in help for details on capabilities and restrictions. RES WHOCALLEDME: New routine to allow a routine to determine what routine called it. Uses help,calls=c and breaks information into a more useful format. RES 22 May 1995 XVIEW: Now uses setwin (see below) to select which window to save if multiple windows exist. RES SETWIN: New routine to allow selection of window to make active if multiple windows exist. RES 19 May 1995 JPEG2TIFF8: New routine to convert JPEG files to 8 bit TIFF. RES 19 May 1995 TIFF2JPEG: New routine to convert a 24 bit TIFF image to a JPEG image. Written for 8 bit color displays since 24 bit TIFF images must be converted to 8 bits for such displays and the color_quan routine does not do as good a job as the read_jpeg routine at this conversion. RES 18 May 1995 XVIEW: Added a button for color transparencies. RES 17 May 1995 SEEDFILL: Added an abort command. Press A to abort. Must catch it before operation completes. RES 15 May 1995 EVENT_LOG: New routine to enter given text in an event log file. This is intended to record short text strings in a log file in the current directory. Text is always appended to the latest log file unless the keyword /NEW is given which starts a new log file. Current log file stays in effect until a new one is requested. Log file name is of the form yymmmdd_hhmm.event_log, for example: 95May15_1712.event_log. A log file is automatically created if none exist. An example log file with 3 events listed is: Event log started Mon May 15 17:24:40 1995 Mon May 15 17:24:40 1995 --- Item 1 Mon May 15 17:24:42 1995 --- Item 2 Mon May 15 17:24:43 1995 --- Item 3 This routine should make it easy to keep a record of processing and processing times. Entries could come in pairs such as: event_log,'Start spectrum '+string(n) event_log,'End spectrum '+string(n) RES 12 May 1995 CROSSI: Added the new keyword DEFAULT=def to set the exit menu default. Normally the default exit option is Continue (which is automatically added to any specified menu). This new keyword will reduce mouse drift (if the most common exit option is not Continue, the last option, then the mouse must be move slightly to select an option above the standard default. After a few such selection the mouse may have drifted off the pad causing a minor disruption to the processing). RES 11 May 1995 WHOAMI: New routine that returns the directory and filename of the routine that calls it. This is very useful if the calling routine would like to access auxiliary files in the same directory as itself. This was previously done by forcing the user to define a system variable to point to the desired directory. The whoami routine can make the use of auxiliary files transparent. It can also be useful for a routine to know its own name without having to hardcode it in. This will allow more portable code where the routine name must be known such as for error messages. RES GENELLIPSE: Minor help text upgrade. RES ELLFIT: Minor help text upgrade. RES 10 May 1995 PRWINDOW: New routine to do a screen dump from current IDL window to color PS printer (by default). Used by the XVIEW color print button. RES 5 May 1995 XVIEW: Added color print button. RES 4 May 1995 PSINIT: Now allows printer to be specified by a tag name. This can be any string in the printer description. Printer descriptions are displayed by the command psinit,/list. These are from the text file pointed to by the environmental variable IDL_PSPRINTERS. It may be useful to edit these descriptions to add unique printer tags. Also added the new keyword /AUTOCOLOR which automatically sets to color PS printers to color mode but not B&W PS printers. The printer description line in the IDL_PSPRINTERS file must contain the word color for color PS printers (case ignored). Also added a returned flag to indicate the color mode actually selected (useful with /AUTOCOLOR). This way a program can determine if a color or B&W printer is the output device and deal with the image as needed. RES 3 May 1995 PSINIT: Added new keyword /COLOR (we finally got a color PostScript printer). RES 13 Apr 1995 MOVLABELS: New routine to do interactive label positioning on screen. This routine is a bit involved since in general the problem is a bit complicated. The basic idea is that you make a screen plot and mark the points to label in some way. Then the coordinates of those points and the corresponding labels are sent to this routine. Use the mouse cursor to click on a point to label and a label will appear. Drag it (keep the mouse button down) to the desired position. This label may be picked up again by clicking on its lower left corner with the left mouse button. Labels may be drug out of any or all the label points given to this routine. Labels may be dropped by clicking on their lower left corner with the middle mouse button. This routine returns an array of selected label positions and an array of flags indicating which labels were turned on. Other options allow labels to be set to an initial position and state, the distance tolerance to pick up a label set, and the label origin positions to be set. RES 11 Apr 1995 TICKLEN: New routine to return ticklengths to use in the plot call to get ticks of a specified length in pixels. Solves the problem of unequal tick lengths for non-square windows. RES 10 Apr 1995 GETSTR: New routine to pick off strings delimited by ' or ". The other kind of quote may be embedded in the string. Works with text strings or string arrays. Useful for handling lists of date/time strings. For example: '28 Jun 1994 20:00', '29 jun 1994 4:00' might be a start and stop time (comma and whitespace between strings is optional), and it is convenient to keep such pairs together. RES 7 Apr 1995 SUBIMG: Switch box used by this routine to box1, the one button box. Box1 also shows coordinates. RES 3 Apr 1995 PLOTPOS: Added new keyword CHARSIZE to allow for a character size change. RES JSPLOT: Fixed a bug with /OVER that prevented correct operation in some cases. RES 30 Mar 1995 XCURVE: Added rubber-banding so you can see just where the next line segment of the curve will occur before adding it. XOR plot mode is used which doesn't always show up as well as one might like. RES 29 Mar 1995 PLTCRV: Just upgraded the one line description since I can never find this routine with a lot of looking and it is fun to use. RES 28 Mar 1995 XMERGE: New routine to merge multiple color images into one. Each component image may have its own color table. The resulting image will show all the images with a new color table. Images may be interactively added, moved, or dropped. Supported image formats are GIF, TIFF, and JPEG. Transparent backgrounds may optionally be defined for each image. RES 22 Mar 1995 BOX1: Added the new keyword /NOMENU to suppress the exit menu. This is useful when you drop into a custom mneu after returning from box1. RES 21 Mar 1995 XTXTIN: Added optional buttons for common selections. Specify these selections using the MENU keyword to give a string or string array. Also may give position of these buttons, above or below text entry field. This should save user typing. RES 17 Mar 1995 EXTREMES_2D: Added the new keyword /EDGES to include edges. RES 17 Mar 1995 ELLFIT: New routine to fit an ellipse to a 2-d probability distribution. RES GENELLIPSE: New routine to display the results of the fitted ellipse found by ellfit. RES 16 Mar 1995 XCED1: Added EXIT_CODE keyword to return type of exit (Done or Cancel). RES 8 Mar 1995 DT_TM_MAK: Added i$ format code at the suggestion of Michael J. Carter at mcarter@lanl.gov. RES 7 Mar 1995 SET_SCALE: Added the new keyword /LIST to display both the screen and data windows. Note the values for the two windows are not listed in the same order. The Screen window values are listed in the same order as used by the POSITION keyword in the PLOT command. The Data window values are listed with the X range and then the Y range. RES 6 Mar 1995 SET_SCALE: Fixed to catch and ignore errors. RES 3 Mar 1995 XCED1: Added /WAIT keyword. RES 28 Feb 1995 CLR_SCALE: New routine to clear scaling info embedded by put_scale. This is done by overwriting pixels 0 to 89 with pixel 90 on the bottom image line. RES SET_SCALE: New routine to restore the original scaling of the currently displayed image. This is possible if the scaling info has been embedded in the image using PUT_SCALE before saving it. See PUT_SCALE below. RES PUT_SCALE: New routine to embed scaling in current image. This is useful for XY or Contour plots and places the screen and data windows into the first 90 pixels of the bottom image line. This routine is simply called after making a plot and before saving it. The inverse routine, SET_SCALE, can read this info and restore the original scaling. This is very useful since previously saved images may be later loaded and measured with XCURSOR, CROSSI, VERI, or HORI. XVIEW has been modified to call SET_SCALE after loading an image. If the scaling info is not available no new scaling is set. This technique will not work with lossy image formats such as JPEG. RES XVIEW: Added an automatic call to the new routine set_scale after each image load. If the loaded image has embedded scaling information that set_scale understands then the original plot scaling is restored. The routine put_scale may be called after doing an XY or contour plot and before saving to embed the scaling info in the image. See the routines set_scale and put_scale. RES 23 Feb 1995 IZOOM: Found and fixed a minor bug in the axes ranges. This bug was introduced when the arrays were extended by one to allow the internal use of the /minus_one option on congrid. Should be ok now. RES ETC: Changed default screen position to work with default screen position of txtmeter.pro. RES TXTMETER: Changed default screen position to work with default screen position of etc.pro. RES 22 Feb 1995 MAKES: New routine to generate a string array of integers. The values do not have leading or trailing spaces and are useful for creating arrays of file names with embedded numbers. Some examples: 'F'+makes(18,0,2)+'.tif' gives F0.tif, F2.tif, ..., F18.tif 'F'+makes(18,0,-2)+'.tif' gives F18.tif, F16.tif, ..., F0.tif. RES 21 Feb 1995 XLINE: New routine. Interactive line on image display. This first simple version does what I need at the moment. It can be upgraded later. It works in any of the 3 coordinate systems: device, normal, data. It allows one line point to be specified when calling and optionally returns the other point. The points are connected using XOR. RES 14 Feb 1995 LS: Added new keyword TOP to set upper scaling of result. RES 9 Feb 1995 ETC: Upgraded the time to completion estimate made between more careful estimates. Old version kept same time to completion between update computations. New version allows for interval since last computation. RES 7 Feb 1995 LINFILL: Made a FOR loop index long. RES 31 Jan 1995 TIMEAXIS: Fixed a minor axis title position problem that showed up for mulitline tick labels. RES JD2MDAYS: Did some minor tuning on labeled tick mark selection. RES HIST: Minor modification to built-in help. RES 30 Jan 1995 MAKE_RULER: Improved built-in help somewhat. RES XCYPH: New routine to interactively determine a period length to to use in making a cycle/phase image of periodic data. Does the same processing as cyph, but using interactive widgets. RES CYPH: Just added a reference to xcyph. RES 19 Jan 1995 MAKEY: Minor upgrade to allow longer arrays. RES ETC: Added new keyword: STATUS=[x,y] (or /STATUS). If given will (RES) print status message at given location. Message is of the form: Current time: 10:22:30 Estimated time to completion: 00:00:01 (10:22:30) 18 Jan 1995 TXTMETER: Added an alternate character (instead of space) to use to mark percent on meter. RES 17 Jan 1995 ETC: Minor addition to built-in help. RES 12 Jan 1995 NWRDS: Allowed tabs to work like spaces. RES GETWRD: Fixed a typo. RES XTEXTIMG: There was a problem inside where program flow dropped through a point that it should have called a routine. Added wait,0 before that point and it seemed to work. Something is not right. Also fixed a minor bug to set returned tif image name to null string if none saved. RES BOX1: Added the new keyword MENU=txtarr to allow a general exit options menu to be given. RES 11 Jan 1995 HORI: Added new keyword /JS to allow time axis in X. RES 3 Jan 1995 PAINT: Fixed a bug caused by ct_luminance wher it returns 255 as the brightest color even though there are fewer colors. Need to limit the brightet color to <(!d.n_colors-1). RES 30 Dec 1994 XVIEW: Added XBM = X11 Bit Map. RES