========================================================================== ****************************** changes.txt ******************************* ****************************** for norway ******************************* ========================================================================== All entries should include: date name reviewer defect# name of affected APIs dlls modules description of the change how to verify the fix ========================================================================== ========================================================================== 5/12/95 Rudy Added multi-page TIFF support in oidis400.dll. Updated wiisfio1 calls to the new 32 bit calls. Files: cache.c, libmain.c, startop.c, privdisp.h in oidis400 ========================================================================== able to read and display black&white, grayscale and color images ========================================================================== STATUS OF OIADM400 - George Kavanagh 5/19/95 - All functionality is present. Note that to load your registry, you should change to the OIWH\ADMIN\REGISTRY subdirectory and double click on the "OI_win95" icion. This will load a sample WOI.INI -full of data into your registry under HKEY_LOCAL_MACHINE\SOFTWARE\WOI ========================================================================== 5/17/95 Status of OIUI400.DLL -- Jennifer Wu All UI functions are callable. OiUIFileGetNameCommDlg with OI_UIFILEOPENGETNAME OI_UIFILESAVEASGETNAME OI_UIFILEPRINT ***The print option button didn't implement yet. OiUIToolAttrib OiUIMarkAttrib OiUICreateToolPalette *** Read from the Registry, only have 14 buttons, need import the registry file. OiUIDestroyToolPalette ========================================================================== 5/23/95 - Heidi Filing should now be re-entrant. All neccessary statics, publics, externals, and commons have been removed and mutex code put in. ========================================================================== 6/8/95 UI/attrbox.c oiuicom.c Implement the help button on all the dialog box. UI/toolpalt.c resource.h oiui400.rc Put the text stamp and image stamp dialog box together again. INCLUDE/oihlep.h Put the text stamp and image stamp dialog box together again. ------------------------------------------------------------------------------------- 6/13/95 Rudy Fixed reading of 16 bit annotated files (cache.c in display) ========================================================================== 9507.10 Captain Russo reporting...from the edge of the neutral zone. Intermediate check in for awd support, some of the items are commented out until this support is added in the GFS dll. MODULE: FILING.DLL FILES: fiordopn.c fioinfo.c fiocmprs.c fiosubs.c fiocopy.c fiodelet.c fioread2.c fiostrip.c fiotiff.c fioread.c fiocvt.c wis.c MODULE: INCLUDE FILE: oifile.h That is all. ...Russo out. ========================================================================== 9507.10 Kendra Kratkiewicz MODULE: LIBGFS, INCLUDE Bug fixes (an array that wasn't big enough, loops that didn't have proper terminating conditions, mutex areas that weren't large enough, functions could return without releasing mutex). Also changed getpid(), which was #defined to (int) 1 for Windows, to call GetCurrentProcessId so that we can really generate unique file names. FILES: gfserrno.h gfsintrn.h gfsutils.c gfswrite.c glibmain.c mktemp.c tmpdir.c tmpnam.c ========================================================================== 7/11/95 Rudy Removed Cornerstone calls and headers from oidis. Files affected: privdisp.h, libmain.c, repaint.c ========================================================================== 9507.11 - Goddard OICOMEX routines were calling obsoleted filing functions. This code was changed to call the new filing functions. This was a problem, however, since the new filing functions require the handle to the file structure (returned when a file is opened with IMGFileOpenForRead and IMGFileOpenForWrite). This handle was not available in OICOMEX functions, so it needed to be passed in from FILING functions, so it could in turn be passed from OICOMEX routines to IMGFileWriteData and IMGFileReadData. I did this by adding parameters to routines, HANDLE FileId to structures, and setting the FileId field before the appropriate calls. Changed the following files: include - oicmp.h oicomex.h oicomex - oicomex.c, comex.h filing - fiowrite.c, fioread.c, fiosubs.c filing.h I still have fiotiff.c left to do. ========================================================================== 7/11/95 Roland Below is a quickie list of all the changes that I have made to the FILING source since the beginning of time (no, only since the beginning of OIWH, but the effort of putting the list together certainly made it SEEM like it went back to the beginning of time). The descriptions will be brief - if you want more detail, feel free to LOOK IT UP YOURSELF! Thank You. Date File Description ---- ------------ ---------------------------------------------------------- 4/7 fioinfo.c Add misc_info argument to IMGFileGetInfo() -------> also fioinfom.c, fiordopn.c, fiowrite.c 4/7 fioinfo.c Change IMGFileGetInfo() test for open file (hFileID=0) 4/7 fioinfo.c Correct IMGFileInfoCgbwNA() test for open file (file==NULL) 4/7 fiocopy.c Change internal IMGFileInfoCgbw() call to IMGFileGetInfo() 4/7 fiocvt.c Replace all old filing calls w/new stuff 4/7 fiocvt.c Correct IMGFileOpenForWrite() & IMGFileWriteData() arg 4/12 fiolist.c Replace IMGFindFstFile()/NxtFile() with Windows 95 calls 4/12 fiocheck.c Replace IMGGetAcc() with Win95 GetFileAttributes() 4/12 fiocheck.c Correct call to GetDriveType() - incompatibility in Win95 4/12 fiosubs.c Replace _fmemcpy() calls with memcpy() calls (Windows 95) 4/12 fiordopn.c Roll in OIWG changes to correctly process fio_flags 4/12 fiodata.h Replace call to wcreat() w/call to CreateFile() 4/13 fiotmpnm.c Replace IMGintoa()/IMGlntoa() with _itoa()/_ltoa() -------> also wiisfio2.h 4/13 fiotmpnm.c Replace rename() w/MoveFile() 4/13 fiotmpnm.c Replace static temp buffers with locals where needed 4/17 wiisutil.c Replace intoa(), lntoa(), atoul() atou() w/"C" runtime calls 4/18 abridge.h Add WIN32_LEAN_AND_MEAN to eliminate compile errors 4/18 fiosubs.c Correct LoadLibrary() return code check for Windows 95 4/18 fiosubs.c Cast SearchForPropList() default (-1) handle to (int) 4/18 pegasus.c Replace call to getacc() with Win32 GetFileAttributes() 4/18 wiisutil.c Change filename/extension length checks for Win95 4/18 wis.c Add OiNetworkType() function, ported from bindery.c 4/18 wis.c Eliminate use of NET_UNKNOWN in OiNetworkType() (use 0) 4/18 sstrings.c Add #include of abridge.h to avoid pulling in lots of junk 4/19 fiodata.h Change MAXNAMECHARS to 255 for Win95 long filenames 4/19 pegasus.c Add "mode" argument to wcreat() for consistency 4/19 fiotmpnm.c Replace IMGGetTimes() assembler code w/"C" routine 4/19 wiisutil.c Replace _farbmcopy() in FARPTR.ASM w/"C" routine here 4/19 wiisutil.c Define new wcreat() function (calls Win32 CreateFile()) 4/19 fiodata.h Change wcreat() arglist to match that of fio_create() 4/19 fiodata.h Restore call to wcreat() (was CreateFile()) 4/19 file_io.c Change I/O calls to "fio_..." for pegasus consistency 4/20 oifil400.mak Remove fioreset.c and wisanal.c (obsolete) 4/20 fioread2.c Replace assembler code in FlipBuffer() w/memcpy() call 4/20 fiopcx.c Upgrade PlaneToColor() assembler code to 32-bit 4/27 fiosubs.c Change "oicomex" to "oicom400" for DLL loading -------> also fiostrip.c, fiotiff.c, fiowrite.c 4/27 fiordopn.c Correct ";" after IF statement in IMGFileReadOpenCgbw() (caused loss of default file handle in later IMGFileRead()) 4/28 fioinfo.c Correct AND constant in Hi-TIFF data check (was ANNO!) 4/28 fiosubs.c Define common load routine (LoadOICOMEX()) for debugging -------> also fiostrip.c, fiotiff.c, fiowrite.c 5/1 oifil400.mak Change gfs32.lib to oigfs400.lib 5/1 oifil400.mak Change admin32.lib to oiadm400.lib 5/1 oifil400.mak Define PRODUCTNAME variable (OIFIL400) for map file 5/3 fiotiff.c Remove special logic for 64K xfer (didn't work & not needed) 5/5 oifil400.def Add EXPORT for lstrchr() 5/9 fiogif.c Change header #includes for oiadm/admin/privapis changes -------> also fioterm.c, fiosubs.c, fiostrip.c, fiowrite.c, fiodelet.c -------> fiowrcls.c, netparse.c, fiocvt.c, fiopcx.c, wis.c, fiocopy.c -------> fioterm.c, fiosubs.c, fiostrip.c, fiowrite.c, fiodelet.c -------> oifil400.mak 5/9 wiisfio2.h Move image format constants to oicomex.h (from admin.h) -------> also fiocvt.c 5/15 fiostrip.c Change DWORD-align mask from ffe0 to 3ffe0 (like LIBGFS) 5/16 fiosubs.c Replace hardcoded DLL names with dllnames.h macros -------> also fiordopn.c, fiostrip.c, fiotiff.c, fiocvt.c, netparse.c -------> fiowrite.c, oifil400.mak 5/19 wiisfio2.h Delete IMGGetTimes() prototype (now defined locally) 5/22 fiolist.c Change IMGFileListDirNames()/VolNames() to DWORD bufsize 5/22 fiocopy.c More header changes for oiadm/admin changes -------> also fiodelet.c, fiocvt.c, fiostrip.c, wis.c, netparse,c -------> oifil400.mak 5/25 fiordopn.c Correctly set internal fio_flags for ANNO/HITIFF data 5/31 fiowrite.c Correct problems with palette stuff assuming 2-byte int 6/6 fiodelet.c Temporarily remove IMGCacheDiscard() error check (workaround for OCX problem until caching fix available) 6/7 fiosubs.c Call CmpExFree() (WINCMPEX) to free up leftover selector in deallocate_fio_data 6/8 fiowrite.c Correct mismatched if/else causing 701 on write to new file 6/8 wis.c Allow for vanishing file w/IMGFileDeletePages() of last page 6/12 fiocopy.c Add calls to IMGCacheUpdate() -------> also wis.c 6/13 fiocopy.c More calls to IMGCacheUpdate() 6/13 file_io.c Add call to IMGCacheUpdate() in IMGFileBinaryOpen() 6/13 fiodelet.c Change fio_OpenFile() call to Win95 DeleteFile() call 6/14 file_io.c Remove call to IMGCacheUpdate (done in IMGFileDeleteFile) 6/14 fiodelet.c Define/use new IMGFileDeleteFileNC()/DeletePagesNC() entry pts -------> also wis.c, fiocopy.c 6/14 fiodelet.c Use new CACHE_UPDATE_DELETE_FILE/CACHE_UPDATE_DELETE_PAGE 6/14 fiocopy.c Remove IMGCacheUpdate() calls for Delete Source options 6/19 fioinfo.c Remove (WORD) casts in X-RES & Y-RES computations (crash!) 6/19 fiordopn.c Remove special-case check for single strip (STRIPMODE) 6/22 oifil400.def Comment out obsolete filing functions 6/22 fiowrite.c Change old FIO_FLAG_ANNOTATE/etc. to FIO_ANNO_DATA/etc. 6/22 fiocopy.c Change internal IMGFileInfoCgbw() call to IMGFileGetInfo() 6/22 fiodelet.c Add "engadm.h" #include for GetImgWndw() call 6/22 oifil400.mak Add "engadm.h" to dependency list 6/23 wiisfio2.h Obsolete (changed to filing.h) 6/23 filing.h New header file (formerly wiisfio2.h) 6/23 fioinfo.c Change #include of wiisfio2.h to filing.h -------> also fiocmprs.c, fiodelet.c, fiocreat.c, fiotmpnm.c, fiocopy.c -------> fiosubs.c, makefile, fiorenam.c, wisglobl.c, fiogif.c -------> pegasus.c, wgfsgeti.c, fiowrcls.c, fiotga.c, fiocvt.c -------> fioread.c, fioread2.c, fioreadm.c, fioterm.c, fiotermm.c -------> fiostrip.c, fiopcx.c, fiotiff.c, fiocheck.c, fiordopn.c -------> fiowrite.c, fioinfom.c, wis.c, oifil400.mak 6/23 makefile Add "engadm.h" to dependency list 6/23 fioinfo.c Turn of FIO_ANNO_DATA and FIO_HITIFF_DATA for non-TIFF -------> also fiordopn.c 6/26 wis.c Check correct error (FIO_OPEN_WRITE_ERROR) for OVERWRITE 6/26 wgfsopen.c Add for O_RDONLY constant 6/26 wgfsopen.c Set correct FIO_OPEN_READ/WRITE_ERROR based on open mode 7/7 fiowrite.c Adjust pagenum test to account for pre-deleted overwrite page 7/7 fiodelet.c Change errors from FIO_OPEN_READ_ERROR to FIO_OPEN_WRITE_ERROR ========================================================================== 7/12/95 Roland Below is another list of changes made in OIWH, this one involving the non-Filing directories (INCLUDE, OICOMEX, etc.) Other comments as above. -------------------- | Directory: INCLUDE | -------------------- Date File Description ---- ------------ ---------------------------------------------------------- 4/13 oifile.h Change file/path constants to reflect Win95 long filenames 4/18 privapis.h Change WORD->int retcode for IMGFileStopInputHandler[M](), IMGFileStopOutputHandler(),IMGFileParse[Whole]Path(), IMGFileReadM(), PrivFileReadCgbwM() 4/19 gfsintrn.h Define WIN32_LEAN_AND_MEAN for clean compilations 4/21 oifile.h Make SYSTEMTIME conditional on WIN16 (not needed in WIN32) 4/24 oierror.h Remove DM and RPC errors, add OI_ERROR_BASE base (for OCX) 4/24 gfsintrn.h Change GFS version to 6.0 for Windows 95, multipage, etc. 5/9 oicomex.h Move JPEG & other constants here (from wiisfio2.h) 5/9 oicomex.h Combine this file with the one in OICOMEX directory 5/9 oicomex.h Move OICOMEX_DATA structure to comex.h 5/9 privapis.h Remove IMGEnumWndws() & IMGListWndws() prototypes (dups) 5/11 oicomex.h Move private/new stuff to comex.h 5/16 dllnames.h New header for DLL namestring #defines 5/25 oierror.h Add warning about changing OI_ERROR_BASE value 6/22 oifile.h Comment out obsolete filing and UI functions & constants 6/22 oifile.h Change to DWORD bufsize in IMGFileListDir/VolNames() 7/7 oicmp.h Add lpCompressData0 to CXDATA structure (PCX fix) 7/11 oicmp.h Add lpLastPointer to CXDATA structure (WINCMPEX fix) -------------------- | Directory: OICOMEX | -------------------- Date File Description ---- ------------ ---------------------------------------------------------- 5/9 comex.h Move OICOMEX_DATA structure to here from \include\oicomex.h 5/9 oicom400.mak Change header #includes for oiadm/admin changes 5/11 comex.h Move private/new stuff to here from \include\oicomex.h 5/16 oicomex.c Replace hardcoded DLL names with dllnames.h macros 5/16 oicomex.c #include changes to pull in comex.h correctly 5/16 oicomex.c #include changes to pull in comex.h correctly 5/16 oicom400.mak Add (new) dllnames.h header dependency ------------------- | Directory: LIBGFS | ------------------- Date File Description ---- ------------ ---------------------------------------------------------- 4/19 gfsclose.c Define WIN32_LEAN_AND_MEAN, fix #include bracketing (<>/"") -------> also gfshuffl.c, lstring.c, gfsflat.c, gfsgtdat.c, gifinfo.c -------> wfread.c, tmpdir.c, wfgtinfo.c, gfsopts.c, tfwrite.c -------> gfsread.c, gfsintf.c, tfutil.c, gfsputi.c, wfwrite.c -------> gfroot.c, netdebug.c, gfscreat.c, gftoc.c, tfread.c -------> gfsutils.c, mktemp.c, gfswrite.c, tmpnam.c 4/25 gfsopen.c Remove (unsigned short) casts of GFS_OVERRIDE 32-bit value 4/25 tmpnam.c Correct bracketing of #include local headers 5/15 gifinfo.c Roll in DWORD-alignment fix from GFSE (3.8) product line 7/5 gftoc.c Correct bug w/processing of old null TOC (Append mode) 7/10 gftoc.c Check for existing TOC buffer to avoid memory leak ========================================================================== 9507.12 - Goddard OICOMEX routines were calling obsoleted filing functions. This code was changed to call the new filing functions. This was a problem, however, since the new filing functions require the handle to the file structure (returned when a file is opened with IMGFileOpenForRead and IMGFileOpenForWrite). This handle was not available in OICOMEX functions, so it needed to be passed in from FILING functions, so it could in turn be passed from OICOMEX routines to IMGFileWriteData and IMGFileReadData. I did this by adding parameters to routines, HANDLE FileId to structures, and setting the FileId field before the appropriate calls. filing - fiowrite.c changed #include of 'display.h' to 'engdisp.h' ========================================================================== 7/12/95 Roland Replaced all #include's of "display.h" with "engdisp.h" (Note: Heidi took care of fiowrite.c above). Files changed: \filing\fiogif.c, fiopcx.c, fiosubs.c, fioterm.c, fiowrcls.c \filing\filing.bat, oifil400.mak, makefile \oicomex\oicomex.c, oicom400.mak, oicomex.bat, makefile Modules: oifil400.dll, oicom400.dll ========================================================================== 7/12/95 Roland Modified all routines calling the IMGCacheUpdate() function to NOT ignore the return code but, rather, to abort the current operation if a nonzero code is returned. Note that "File Not In Cache" and other such "innocuous" errors are NOT reported by this routine (it returns SUCCESS in such cases), so any error returned is considered to be fatal. Files changed: \filing\fiocopy.c, fiodelet.c, wis.c Modules: oifil400.dll ========================================================================== 7/12/95 Rudy Added page no. for image marks. It is passed in with the filename and the format is "filename|page". Filenames passed in without a page no. default to 1. Files affected: anbitmap.c, privdisp.h in oidis400 ========================================================================== 7/12/95 Roland Header file oiutil.h has been removed (commented out, actually) from the \include directory and put in \filing\fileutil.h. I did not delete the original file for the moment; we probably can at some point, once we're sure that we don't need to redo any of the previous builds. Files changed: \filing\file_io.c, fiocvt.c, fiogif.c, fiopcx.c \filing\fiordopn.c, fioread2.c, fiotga.c, fiotmpnm.c \filing\fiowrite.c, oiutil.c, pegasus.c, sstrings.c \filing\fiocopy.c, fiodelet.c, oifil400.mak, makefile \filing\filing.bat \include\oiutil.h Files added: \include\fileutil.h Modules: oifil400.dll ========================================================================== 9507.17 - Goddard oifil400.def - exported DllMain ========================================================================== 9507.17 Kavanagh Added checks to OiGetIntfromReg() to filter out non-numeric strings and strings that convert to values that will not fit in an integer variable. Also added code in Get/SetFilePath & Get/SetFileTemplate to check for valid parameters. MODULE OIADM400.DLL FILES: noui.c scntmplt.c ========================================================================= 9507.18 - Goddard \filing\fiomain.c added switch statement in DllMain and CloseHandle of the filing mutex. ========================================================================== 7/18/95 Roland In the process of tracking down a problem with writing BMP files (which turns out to be a problem with illegal fio_flags settings), I discovered that the IMGFileOpenForWrite() routine did not correctly redo the original IMGFileWriteOpenCgbw() "kludge" logic that used the ALIGN_ANO flag to signal annotation/HiTIFF awareness. So I've corrected that, added the corresponding conversion logic to the IMGFileWriteOpenCgbw() "shell" function, and, while I was there, corrected both IMGFileOpenForWrite() and IMGFileOpenForRead() to actually validate the value for the "alignment" argument, i.e., if it's anything other than ALIGN_BYTE, ALIGN_WORD or ALIGN_LONG, I spit it out with an appropriate error. Files changed: \filing\fiordopn.c, fiowrite.c \include\oierror.h Modules: oifil400.dll ========================================================================== 7/19/95 Jennifer Wu Module : oiui400.dll Files changes : \ui\attrbox.c Use malloc and free to allocate and free the memory. ========================================================================== 7/19/95 Rudy Changed the way files were closed in IMGCacheUpdate, to make sure multi-page files are closed before they get thrown out of cache. Also took out ALIGN_ANO flag from display calls to filing. Files affected: cache.c, save.c in oidis400.dll ========================================================================== 7/19/95 Rob Roy oiprt400.dll Changed location in code where the remaining bands of a page are retrieved so it will be done if a recoverable error occurs. Otherwise, Windows will return errors when getting bands for the next page. ------------------------------------------------------------------------------- 7/19/95 Roland I've modified the logic in IMGFileOpenForWrite() so that setting the Annotation and/or Hi-TIFF flags for non-TIFF files no longer results in an error but simply ignores the flags (an error WILL be returned later if an attempt is made to actually write either of those types of data). Files changed: \filing\fiowrite.c Modules: oifil400.dll ========================================================================== 7/20/95 Goddard \filing\wis.c now return FIO_DELETE_ERROR when deleting a file fails. ------------------------------------------------------------------------------- 7/20/95 Goddard \filing\fiotiff.c Added assignments jpeg_info.wiisfio.FileDes = pdata->filedes; jpeg_info.wiisfio.FileId = lpcxdata->FileId; before call to OIExpand because the values will be used later in calls from OIComex back to new filing routines. jpeg_info.wiisfio.FileDes = pdata->filedes; jpeg_info.wiisfio.FileId = lpcxdata->FileId; ========================================================================== 7/20/95 Roland TGA files could not be read in the 32-bit environment, and the reason was that the TGAHEADER structure, which defines the header block at the start of the TGA file, was getting generated with force-aligned fields by the "C" compiler, and thus was throwing the actual data out of sync. Rather than risk problems at the compiler level, I corrected this locally by redefining the affected WORD fields as char+filler and (WORD) casting them as needed in the source (there were only a few references, all in the tgainfo() routine, so it wasn't a major effort). I also discovered, after getting the crashes to stop, that the palette was being misread, and that turned out to be the code checking a flag that was defined only for BMP palettes, not TGA palettes. Apparently it was just a fluke that the code actually worked in 16-bit (OIWG). Lucky us. Files changed: \filing\fioinfo.c \libgfs\gifinfo.c Modules: oifil400.dll, oigfs400.dll ========================================================================== 7/21/95 Rudy Added decrementing of base image lockcount in imgclosedisplay. Also put in a check so that cacheread will now not do anything if the ulinestoread value is 0. Changed OI_IF_xxx values in oidisp.h to the values defined for that image type in oifile.h. This way the ocxs wont have to have special cases for when calling display calls versus filing calls, with the image type. Files affected: clear.c, cache.c, setparm.c, oidisp.h (oidis400.dll) ========================================================================== 7/21/95 Roland In response to a request from the seqfile crowd (i.e. BLJ), I have added a new field to the FIO_INFO_CGBW structure called max_strip_size, which is returned for TIFF files only and contains, as you would guess, the maximum (compressed) strip size contained in the TIFF image. This was easy to add in that it simply required copying the field from the internal GFSinfo data structure. Note that the FIO_INFO_CGBW structure now contains one less reserved UINT. Files changed: \filing\fioinfo.c \include\oifile.h Modules: oifil400.dll ========================================================================== 7/24/95 Roland Fixed the (local) strip_trailing_spaces() routine that is used by the new IMGFileConvertPage() function to remove leading and trailing spaces from the source and destination strings. It was simply looking for the first non-leading space and truncating the string there, rather than searching backwards from the end of the string (or some semblance thereof). This was messing up in Windows 95 long file/directory names containing embedded spaces (which ARE legal). Note that, contrary to the comment in my (pvcs) check-in log entry, Windows 95 supposedly does not allow leading or trailing spaces either, so this routine, as well as the other one in SSTRINGS.C, which does, by the way, work correctly, should be able to remain as-is for the Norway release. Files changed: \filing\fiocvt.c Modules: oifil400.dll ========================================================================== 7/25/95 Kavanagh Moved storage for the events that guard access to the WindowList linked list shared (Memory Mapped) memory to instance memory so that each instance of the DLL, in several processes, will store, in its own data segment, its own _process specific_ event handle to the single, shared, WindowList event kernel object. Did same for the Registry event handle storage. Files changed: CEPFRMAT.C INITLOAD.C NOUI.C ADMNMAIN.C SCNTMPLT.C PVADM.H =========================================================================== 7/26/95 Jennifer Wu Oiui400.dll /ui/attrbox.c Added a resetstampstruct procedure to move up the stamp pointer in the stamp structure. Now, if the stamp count is 4, the stamp array 0 to 3 stores the valid stamps. ========================================================================== 7/27/95 Roland Removed TGA support - we're not supporting this for the first release. Files changed: \filing\wis.c, fioinfo.c, fiordopn.c Modules: oifil400.dll ========================================================================== 7/27/95 Roland Ref: Bug #3176 P2 The bug was that IMGFileCopyPages() deletes the output file, even if it already existed, if an error occurs during the copy. The problem was, in fact, not in IMGFileCopyPages() at all, but in IMGFileConvertPage(), which called IMGFileDeleteFile() unconditionally on the output file if an error occurred (in this case, the error was that the output file already existed!) I've corrected the routine so that it keeps track of whether or not it actually created the output file, and only then does it delete it if an error occurs. Files changed: \filing\fiocvt.c Modules: oifil400.dll ========================================================================== 7/28/95 Rudy Removed the OI_IF_xxx flags from oidisp.h. The ITYPE_xxx flags should be used in their place. Files affected: anbitmap.c, repaint.c, setparm.c, getparm.c, oidisp.h in oidis400 ========================================================================== 7/28/95 Ken Spina - no bug reported against this as I know of OISSQ400.DLL CHANGED Bug in appending files found by Paul, found it was inserting where it should be appending for Page specified as 0 or - no. Changed hard coded reg strings to get them for resouce file. Found PagesPerFile entered as 1 was going to the registry, was only an override to test O/i 3.8 code. MODULES CHANGED:destcom.c oissq400.rc scanfile.c seqrc.h scandest.c ========================================================================== 7/31/95 Roland Ref: Bug #3192 P3 Various Access Violation errors that were showing up in the Output window when running the debugger were apparently all being caused by a call to GlobalFree() in the deallocate_fio_data() routine, called by IMGFileClose(). The routine was attempting to free up a data buffer that is allocated in the 16-bit W16CMPEX dll, which resulted in the Access Violation because of the attempt to free it in 32-bit code. Turns out that the GlobalFree() call was followed by a call to (16-bit) CmpExFree(), which takes care of freeing up the buffer anyway, so I just got rid of the GlobalFree(). Files changed: \filing\fiosubs.c Modules: oifil400.dll ========================================================================== 7/31/95 Rudy Fixed painting of marks in a metafile DC. Due to text marks which are not paintable on a metafile DC, a DC compatible to the window DC needs to be created and all the marks painted on that DC first. Then this DC can be blted to the metafile DC. The marks end up being rendered in the metafile DC, but the metafile cannot perform any action on the marks anyway, so that should not be a problem. All code in InvokeRegDC. File affected: repaint.c in oidis400 ========================================================================== 9507.31 Kendra Kratkiewicz MODULE: LIBGFS, INCLUDE, 3RDPARTY Added some of the support needed for AWD reading (so far just open and close). Also did some minor reformatting and fixing some existing errors (like duplicate function prototypes in gfsintrn.h that caused errors in my new CPP file). These changes involved the makefile as well, to include some new files. FILES: gfsawd.cpp (new) gfsawd.h (new) viewrend.h (new, from Microsoft) awview32.lib (new, from Microsoft) gfsopen.c gfsclose.c gfs.h gfstypes.h gfct.h gfserrno.h gfsintrn.h ========================================================================== 8/1/95 Jennifer Wu OIUI400.DLL ui/attrbox.c Fixed a bug,cannot edit a newly created text stamp. OIUI400.DLL ui/oiuicom.c Map some common dialog error to the O/i errors. ========================================================================== 8/1/95 Kendra Kratkiewicz MODULE: LIBGFS Fixed an internal routine, GetNumPagesInDoc, that didn't release a stream and storage that it had opened. This prevented them from being opened again. FILES: gfsawd.cpp ========================================================================== 8/1/95 Roland Ref: Bug #3227 P2 IMGFileCopyPages() with the FIO_OVERWRITE_FILE option would copy only the last page of the source range. As I expected, the routine wasn't turning off FIO_OVERWRITE_FILE after the first call to IMGFileConvertPage(), which it actually uses internally to do the copy operation. The result is that it would recreate the output file on every iteration, thus leaving only the last page (duh!) It now changes the flag to FIO_APPEND_PAGE after the first iteration and everything looks fine. Files changed: \filing\fiocopy.c Modules: oifil400.dll ========================================================================== 9508.02 Captain Russo reporting...we are engaging the Borg! added in the GFS - AWD read support code for real! MODULE: FILING.DLL FILES: fiordopn.c fioinfo.c fioread2.c wis.c ...Russo out. ========================================================================== 8/2/95 Roland Captain Russo & the Borg are engaged? Ref: Bug #3237 P3 (I'd have made this one at least a P2 myself, but what do I know?) This concerned problems with doing IMGFileCopyPages() with the INSERT_PAGE and OVERWRITE_PAGE options, which did not copy annotations from the source page. The problem was caused by the "page-shuffle" logic that kicks in after writing the last piece of image data in IMGFileWriteData() - it was calling writeifd() to write out the TIFF IFD before any annotation data was written, thus resulting in an IFD with no annotation tag. I fixed it by simply moving the page-shuffling logic from IMGFileWriteData() to IMGFileClose(), i.e., AFTER all of the data for the page has been written, and things seem to be working OK now. The other half of this bug report, i.e., getting a filing error in 3.7.2 after doing a (Norway) Append with certain types of image files, is probably FAD in that it's unlikely to be retro-fixed in 3.7.2. Apparently there's no problem with 3.8 (i.e., OIWG line), so I suspect that it's related to some changes in the Annotation structure or logic that occurred between those two versions of code. Straight Norway append stuff seems to be fine. Files changed: \filing\fiowrite.c, fiowrcls.c Modules: oifil400.dll ========================================================================== 8/2/95 Ken Spina - no bug reported as known as yet SCANSEQ.DLL - twainif.c FOUND Scan to display without file was using a pointer that was not init'd when scanning only to display. ========================================================================== 8/3/95 Jennifer Wu OIDIS400.DLL display\antext.c privdisp.h OIUI400.DLL ui\oiui400.rc Added two new macro for date(%x) and time(%X). Fixed P1 bug # OIDIS400.DLL display\antext.c The macro for month is wrong. Because O/i 3.7.2 get month 0-11 and Win95 get 1-12. ========================================================================== 8/3/95 Roland (no bug report on this one) Doing an IMGFileCopyPages() on certain (?) Black & White files (BWPACK.TIF) was reversing the black & white bits. It turned out to be logic in the CopyPages() routine that was messing with the FIO_NEGATE flag, oblivious to the fact that it was about to call IMGFileConvertPage(), which in turn calls IMGFileOpenForWrite(), which itself twiddles with the bit, thus resulting in the &@%$%@* thing ending up the reverse of what it should be. I actually don't know why WriteOpen() is doing this in the first place, but apparently it's been doing this for a long time and will break the universe if we remove it, so I pulled the logic out of CopyPages() instead. Files changed: \filing\fiocopy.c Modules: oifil400.dll ========================================================================== 8/4/95 Rudy Added a switch statement before the render call in imgsavetofileex which sets up the image type based on whatever the destination image type is. This should fix miscellaneous thumbnail and saving scaled data problems. (repaint.c, save.c in oidis400.dll) -------------------------------------------------------------------------------- 8/4/95 Kendra Kratkiewicz MODULE: LIBGFS, INCLUDE Modified gfsgeti to work on AWD files. This involved making supporting changes in several other files. FILES: gfsgeti.c gfsawd.cpp gfsawd.h gfct.h gfs.h ========================================================================== 8-7-95 Brian Fixed problem with PAL8 images. ----------------------------------------------------------------------------- 8/7/95 Jennifer Wu OIUI400.DLL ui/oiattrib.c Enabled the text stamp attrib dialog box for the mark. P3 # 3182 OIUI400.DLL ui/oiui400.rc Fixed the bug of print options dialog box "displayed" again. OIUI400.DLL ui/oiui400.rc Changed the file open first default filter for "All Image Files" from "*.awd " to "*.tif" ========================================================================== 9508.07 Captain Russo reporting...ahead warp factor 8! MODULE: libgfs FILES: gfsread.c added code to gfsread to do the AWD file reading, via the function ReadAwdBand gfsawd.cpp made a new function CleanAWDFile for calling ViewerClose and releasing the Doc Storage and Doc Stream, this is called by CloseAWDFile and ReadAWDBand, (in gfsread.c) MODULE: filing FILES: fioinfo.c changes to allow for reading the AWD file format fioread.c fioread2.c ...Russo out. Can't we demote ensign Rollo any further? ========================================================================== 9508.07 Captain Russo reporting...ensign Rollo, report to the brig! MODULE: filing FILES: fioread2.c added check for inverting bits when reading awd! ...Russo out. ========================================================================== 8/7/95 Ken Spina - no bug reported against this as I know of OISLB400.DLL CHANGED MODULES CHANGED: opts.c COMMENTS: This is 1st attempt to resolve the problems with the HP data sources where on setup the caps and the image size and offset are not returned properly. HP is saying this is the way they want it to work and I have not had any success in changing their thinking. This doesn't solve the problem with all capabilities but does solve the problem for resolution, size and offset(at least for the DeskScan data source) Appears not to break other data sources. Need to see why it didn't work for the HP PictureScan. ========================================================================== 9508.08 Captain Russo reporting...Warp factor 9 All of these items were checked in for the new IMGFileGetInfo function for getting the AWD last view info, ( the public interface calls these items LastInfo instead of AWDInfo, in case we use them for files other than AWD) Also, this includes a new public API for filing to support the update of AWD last viewed info, IMGFilePutInfo, as well as a new page opts flag for IMGFileOpenForWrite - FIO_UPDATE. MODULE: filing FILES: fioinfo.c fiowrite.c fiostrip.c oifil400.def MODULE: include oifile.h ...Russo out. ========================================================================== 8-8-95 Brian Added "last viewed" support. ----------------------------------------------------------------------------- 8/9/95 Jennifer Wu P3 #3322 OIUI400.DLL ui/attrbox.c In the Text stamp edit dialog box, "Date" and "Time" button will be enabled only when the focus goes to the stamp text edit field. P3 #3329 OIUI400.DLL ui/oiuicom.c include\oiui.h The nCopies parameter didn't get updated in the Print dialog box. It is win95 bug. Now, I overwrite it with new parameter nCopies in the OI_FILEPRINTPARM structure. ----------------------------------------------------------------------------- 8/9/95 Kavanagh noui.c, cepfrmat.c, scntmplt.c, initload.c redesigned the atox routine to return error status. added the atox_integer function to convert an ascii hex number to an integer (atox converts to a word). Fixed the IMGSetxxx functions to always set the value in the CMTable and to optionally set it in the registry. (They had been setting to one or the other). Due to this change, a valid hWnd parameter is now always required. ========================================================================== 8/8/95 Roland (no bug report on this one) We were not checking for compressed BMP files, which we don't support. The result of that omission was that compressed BMP files either got data errors or displayed as garbage. We now check for the compression indicator and return "unsupported type" error if set. Files changed: \filing\wgfsgeti.c, oifil400.mak, makefile, filing.bat \libgfs\gifinfo.c Modules: oifil400.dll, oigfs400.dll ========================================================================== 8/10/95 Roland Ref: Bug #3300 P2 This bug report concerns a problem with deleting Readonly files. The reported bug was caused by code in gfsdelpgs() deleting the entire file and not bothering to check the return code. That's now fixed, but there was an even messier problem that I tripped over when attempting to delete only SOME of the pages in a multipage TIFF file: Because DOS allows rename of a Readonly file, which ranks right up there on my list of Moronic Things Allowed by People Who Wouldn't Know an Operating System if They Tripped Over It, the logic to delete pages from the file works just dandily creating the new file, copying pages, etc., etc. until the very end when it attempts to delete the (previously renamed) original file, which fails, leaving the updated file and a renamed original that can't be removed. And no error reported, of course, since the code (rightly) assumes that if the file could be renamed, it could also be deleted (ha ha, Bill G. fooled us again!) I've corrected the problem by calling GetFileAttributes() right up front in IMGFileDeletePages() to make sure the file in question isn't Readonly, and reporting an error if so. I've also added the same check in our internal FioRename() function, to make sure we don't miss this one anywhere else. Note that IMGFileRenameFile() is obsolete in Norway, so what THAT function does and doesn't allow is a non-issue. Also: There's a macro in various GFS files called "unlink", which is intended to do a delete and used to be defined as (Windows) OpenFile(). Some time back I discovered that OpenFile()'s "delete" function seems to behave strangely, so I've changed all the macro definitions to map to the new (Win95) DeleteFile() function instead, for consistency (and reliability). Files changed: \filing\fiotmpnm.c, fiodelet.c, wgfsdele.c \libgfs\gfsclose.c, gfshuffl.c, gfcntl.c, gfsdelet.c Modules: oifil400.dll, oigfs400.dll ========================================================================== 8/10/95 Kavanagh Modified IMGIsRegWnd calls in the Get/Setxxx functions to test for !SUCCESS rather that FALSE. cepfrmant.c scntmplt.c ========================================================================== 8/10/95 Kavanagh cleaned up hWnd checking code in cepfrmat.c, scntmplt.c, noui.c =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ ********************************bld0810********************** ========================================================================== 9508.11 Captain Russo reporting...Verbosing where others fear to communicate! MODULE: filing FILES: fioread1.c added check for end of file condition when reading in AWD files. This fixes the crash that occurs when someone tried to read in the 2nd page of the famous 2pgfail.awd file MODULE: libgfs FILES: gfsread.c added check for null viewer context in ReadAwdBand, before call to ViewerGetBand. ...Russo out. Boldly typing characters into the endless stream that is this junk! ========================================================================== 08/11/95 Kendra Kratkiewicz MODULE: LIBGFS FILES: gfsawd.cpp: Added code to handle the case of no doc info stream, using the following defaults: rotation = 0, X and Y scale = 100%, flags = 0 (none set). Added code to handle flags correctly according to Microsoft: page info overrides doc info for fit-to-width and fit-to-height; invert is XORed from page info and doc info; ignore means to ignore the page info. Added code to recognize an obsolete AWD and to report the new error code, EOBSOLETEAWD. Fixed a problem where some IStorage and IStream pointers were not initialized to NULL. gfsawd.h Added #defines for the individual AWD page info flags. gfserrno.h Added two new error codes: ESTREAMNOTFOUND (for internal use) EOBSOLETEAWD (can be bubbled up) ========================================================================== ................................................... ...........................................BUILDING oiwh/bld0811 ========================================================================== 9508.12 Captain Russo reporting...fighting the ever increasing apathy MODULE: filing FILES: wgfsgeti.c added more error handling for GFS errors returned from gfsgeti, especially for the AWD Obsolete Error MODULE: include FILES: oierror.h added a new error for filing, FIO_OBSOLETEAWD ...Russo out. Just say No! ========================================================================== 8/13/95 Roland Ref: Bug #3407 P2 Did you hear the one about the Black & White images that kept coming out the wrong color? It was fixed (I thought) on 8/3/95, but showed up again, and some compares to code in 3.8 (OIWG) turned up the interesting fact that several of the UI level routines were turning off the FIO_NEGATE flag before calling Save() or whatever, and it finally occurred to me that the weird code that I had ripped out of IMGFileCopyPages(), i.e., the incomprehensible flag-tweaking stuff that duplicated what IMGFileOpenForWrite() was going to do anyway, should IN FACT have simply been nothing more than a one-liner to simply TURN OFF the negate flag for non-JPEG (?) I did that, and things seem to work, i.e., both this file (BWUNC.TIF) and the one from the 8/3 report (BWPACK.TIF) now append correctly. It would also appear to still be the case that NOBODY understands what IMGFileOpenForWrite() is doing with the bit, but I guess it doesn't matter, since whatever it's doing seems to have worked in the past, and IMGFileCopyPages() now appears to also be working in the present, such as it is. End of story, I hope. Files changed: \filing\fiocopy.c Modules: oifil400.dll ========================================================================== ................................................... ...........................................BUILDING oiwh/bld0813 ................................................... ...........................................BUILDING oiwh/bld0814 ................................................... ========================================================================== 8/15/95 Roland Ref: Bug #3447 P1 Crash when attempting to insert AWD page to TIF file Because of the way the (Microsoft) AWD routines work, we are required to read in full bands, analogous to TIFF strips, at a time, and the GFS code assumes that the buffer passed to it will accomodate this. Although the DISPLAY code doesn't care, since it allocates a buffer large enough to accomodate the entire file, the IMGFileConvertPage() routine does not, and was simply allocating the usual 7C00 (MAXBUFSIZE) value, resulting in memory getting trashed. It's been changed so that, for AWD files, it allocates a buffer of size equal to the AWD file's band size, which it obtains from the FIO_INFO_MISC structure passed to IMGFileGetInfo(), and things seem to be working fine now. We could optimize this somewhat by possibly allocating multiples-of-band-size buffers at some point, but for purposes of getting things to work, I haven't done that. Files changed: \filing\fiocvt.c Modules: oifil400.dll ========================================================================== 8/15/95 Rudy Fixed bug with displaying a new image. The AWD rotation info in display was not being initialized in IMGOpenDisplayCgbw, which was causing an error later on. Files: open.c in oidis400.dll Fixed OiAnRenderClipboardFormat from erroring out when there is no image displayed in the window. This could happen when the application is exiting and calls wm_renderallformats. Now rather than erroring out it will try to exit gracefully. Files: copy.c in oidis400.dll ========================================================================== 8/16/95 Roland Ref: Bug #3412 P3 PCX/DCX files are marked as PACKBITS compression Because we never defined a new compression type for PCX/DCX, PACKBITS was apparently chosen as the compression type because it is the closest to the run-length-encoded compression that these files actually use. However, this caused a problem beyond the complaint in the above bug report: I discovered that I could not successfully insert/append or otherwise convert a PCX/DCX file that was anything other than Black & White, since the code would see the combination of PACKBITS and non-BW (i.e. color, gray, etc.) and barf. Changing the compression type to UNCOMPRESSED for PCX/DCX, while not exactly correct, does eliminate this problem without resorting to lots of new logic to do a "best-fit" of incompatible compression options. And there is a precedent for setting UNCOMPRESSED as the compression type for files whose compression is "fixed", i.e., not subject to user tweaking: AWD does it too. Files changed: \libgfs\gifinfo.c Modules: oigfs400.dll ========================================================================== 08/16/95 Kendra Kratkiewicz MODULE: LIBGFS FILES: gfsawd.cpp - Fixed an internal routine that had a problem moving the seek pointer in a stream. This problem affected AWD files that contain multiple documents (we wouldn't recognize more than the first document). ========================================================================== 8/16/95 Rudy Changed cacheread to quit when FIO_EOF is received from filing, no matter how may lines we are short. This will be taken out once we know the proper number of lines in every page of an AWD file. (cache.c in oidis400) Took out some error checks from OiAnRenderClipboardFormat because the OCXs are calling SeqfileDeReg before the renderallformats clipboard call. Once it is fixed in the ocx's the checks will be put back in. (copy.c in oidis400) --------------------------------------------------------------------------------- 9508.15 Captain Russo reporting...yikes! MODULE: filing FILES: fioread1.c added line to ReadAwd to adjust the LineCount, ( the number of lines read in this call), returned to the caller of IMGFileReadData. ...Russo out. ========================================================================== 9508.16 Captain Russo reporting...our dilithium crystals are more cracked up... FIXES BUG #3405 MODULE: oicomex FILES: oicomex.c fixed the GetJpegFormat routine, the interface was expecting LPWORD, the caller was passing the address of an INT, therefore some garbage was shoved into the SubSample and Quality stuff for JPEG ...Russo out. ========================================================================== ................................................... ...........................................BUILDING oiwh/bld0816 ----------------------------------------------------------------------------------- 8/17/95 Rudy Fixed bug with flipping an rgb24 image that had an odd number height. The middle line of the image was getting corrupted. File: orient.c in oidis400 ========================================================================== 9508.17 Captain Russo reporting... MODULE: filing FILES: fiordopn.c added call to IMGCacheUpdate for fixing the problem of fioinfo.c multiple file open access for AWD files, this call will cause display to read the rest of an open awd file page into cache and close that file page. ...Russo out. ========================================================================== 8/17/95 Roland Ref: Bug #3361 P3 This report concerned use of the generic FIO_ERROR error code, which was being used in several places in FILING code to mean nothing in particular. Because the places in which it was used amounted to effectively two different error conditions, I've simply defined new error codes for these conditions and added them to oierror.h, replacing all the FIO_ERROR uses. The new error codes are FIO_INVALID_DATA_TYPE and FIO_INVALID_FILE_ID. In the process, I've eliminated the wgfsxtrc() routine, including the source file and MAK/DEF references, since we never call it (and it had an FIO_ERROR in it that would have required yet another new error message!) Files changed: \filing\makefile, oifil400.mak, filing.bat, oifil400.def \filing\fiowrite.c, fioread.c, fioreadm.c, fiowrcls.c \filing\wgfsopts.c \include\oierror.h, wgfs.h Modules: oifil400.dll ========================================================================== 8/17/95 Roland Several compile problems showed up during the attempt to build with compiler optimization set. Most of them were harmless enough (arithmetic operations that were getting fussed over & variables that were no longer used), but a couple of them were actual bugs, oh boy. The real biggie was in PCX Write code, which, of course, we never actually execute, which may have something to do with why we never spotted the bug. Files changed: \filing\wgfsopen.c, wgfscrea.c, wis.c \libgfs\gfswrite.c, tfmultpg.c Modules: oifil400.dll, oigfs400.dll ========================================================================== ................................................... ...........................................BUILDING oiwh/bld0817 ========================================================================== 8/18/95 JClark Fix bug in shiny new gfsputi stuff for awd files, where "page in file" being was used, instead of the more tasteful "page in rba stream", to index into the page info array. Files changed: \libgfs\gfsawd.cpp Modules: oigfs400.dll ========================================================================== 8/18/95 Rudy Fixed optimizing compile errors in oidis400.dll Files: anbitmap.c, privdisp.h, copy.c, scalebit.c in oidis400 Fixed the way the save_ano_xxx flags were being handled when save_ano_bilevel_all_xxx flag was or'ed in with it. Files: annot.c, save.c in oidis400.dll -------------------------------------------------------------------------------- ................................................... ...........................................BUILDING oiwh/bld0818 ========================================================================== 9508.19 Captain Russo reporting... This fixes the problem with thumbnail viewing of the multipaged tiff! MODULE: filing FILES: fiordopn.c added call to IsAWDFile to determine if we should call to update the cache, this function is now exported from within OiGfs400.dll, fixes the bug with thumbnail viewing of multipaged tiff MODULE: libgfs FILES: oigfs400.def exported the IsAWDFile for use by OiFil400.dll to determine if it's got an AWD file ...Russo out. ========================================================================== 8/19/95 JClark Change ">=" to ">" in FilePageToDocPage routine, as all file/doc page numbers are zero relative in this code. Files changed: \libgfs\gfsawd.cpp Modules: oigfs400.dll ========================================================================== ................................................... ...........................................BUILDING oiwh/bld0820 ========================================================================== 8/21/95 JClark Fix prototype for function wtmpnam. wtmpnam (which is tmpnam in the code, and is then #defined to be wtmpnam. who knew?) takes 1 parameter, and wasn't prototyped correctly. Files changed: \libgfs\gfsintrn.h Modules: oigfs400.dll ========================================================================== 8/21/95 Ken Spina - no bug # as I know of Fix scanning to file with no display(mulipage filing), Paul J. found the same image being written to all pages of the file. Needed IMGClearWindow call between ea. image, for IMGScantoFile did it for ea. file in 3.7.2 code. Files changed: native.c and memory.c of Moduels: oitwa400.dll ========================================================================== 8/21/95 Kendra Kratkiewicz MODULE: 3rdparty FILES: awview32.dll - checked in an updated version from Microsoft that fixes the incorrect max page height problem (from the viewing side) awrbae32.dll - NEW - another updated win95\system DLL from Microsoft; this one involves RBA encoding and also is related to fixing the max height problem (but from the encoding side) ========================================================================== 8/21/95 Jennifer Wu P3 #3427 OIUI400.DLL ui/oiui400.rc attrbox.c resource.h Changed the caption string for the dailog box. Moved the "OK", "Cancel" buttons to the right bottom cornor. ui/oiuicom.c Hard code the help file name as "wangocxd.hlp". P2 #3421 OIDIS400.DLL %m shows "9" for August. Fixed. ========================================================================== ................................................... ...........................................BUILDING oiwh/bld0821 ------------------------------------------------------------------------------- 8/22/95 Rudy Fixed the way files were being cleaned up in display. If a file is open and the window is going away, we read in the rest of the file and then close it (filing call). It used to skip every other file and leave them open, now we should be OK. Files: libmain.c in oidis400.dll ========================================================================== 9508.22 Captain Russo reporting... added global flag bUpdatingCache to be set and cleared around calls to IMGCacheUpdate, this is due to the call that is in IMGFileOpenForRead, ( which we needed for doing multiple page access for AWD). This flag prevents us from getting into a bizarro recursive call situation with IMGCacheUpdate! MODULE: filing FILES: fiordopn.c fiocopy.c fioinfo.c fiodelet.c wis.c ...Russo out. ========================================================================== 9508.22 Goddard Fix of bug 3543 P2. On failing IMGFileOpenForRead, close the file before jumping to ErrorStuff. Module: filing file: fiordopn.c ========================================================================== 8/22/95 Roland (no bug formally filed that I'm aware of) A problem was encountered in one of the VB test scripts with O/i crashing. After much investigation, the problem was tracked to a slightly short buffer allocation in the gfsdelpgs() routine, which attempted to copy an input string into a new buffer allocated as "strlen(input)", rather than as "strlen(input) + 1" to allow for the NULL. This caused GlobalAlloc() no end of grief when it later attempted to use the overrun byte's former contents. Good thing Windows 95 is such a robust system, huh? Files changed: \libgfs\gfsdelet.c Modules: oigfs400.dll ========================================================================== 9508.22 Goddard Added another MUTEX to protect the property list that we have keeping track of multiple files open for read. Mutex is called g_hFilingMutex2. Module: Filing FIOMAIN.C , FIORDOPN.C, FIOTERM.C, FIOTERMM.C, FIOSUBS.C, FIOINFO.C ========================================================================== 9508.22 Goddard Fix for bug #3485 \libgfs\gifinfo.c In .JPG files (JFIF) the Units may be specified in one of 3 ways: 1) if Units == 01, then resolution is dots per inch 2) if Units == 02, then resolution is dots per centimeter 3) if Units == 00, then there is no resolution, and the measurement is a pixel aspect ratio. Display and file info calls, however want a resolution, so we will return JFIF_DEFAULT_DPI = 200. This is the fault of Joe and Brian. Do not come to me. ========================================================================== 8/22/95 Roland It was pointed out in some article or other that the intrinsic/inline version of memcpy() generated by the compiler doesn't do 32-bit operations. Following BLJ's lead, I've added #pragma function() statements to FILING and LIBGFS for the memcpy() and memset() functions, both of which we use, to ensure that the more efficient C-runtime routines are always used. Files changed: \filing\oiutil.c, fiotga.c, filing.h \include\gfsintrn.h Modules: oigfs400.dll, oifil400.dll ========================================================================== 8/22/95 Ken Spina No bugs as of yet against this scanner as I know of When scanning, using IMGScantoFile() or IMGScanOpts_Enh() the UI for the scanners would be put behind the application window, this occurs when TWAIN is thunking down to a 16 bit data source(scanner driver). The TWAIN_32.DLL executes a TWUNK_16.EXE which sometimes is the top window and sometimes not, if it is the top window the scanner UI is placed above the application, if it is not the scanner UI could be placed behind the application running the IMGScantoFile() or IMGScanOpts_Enh() call. A 2nd problem this fixes is the Stop/Pause button now can receive messages. Files changed: misc.c, opts.c, dc_scan.c and internal.h of scanlib Module: oislb400.dll ========================================================================== 08/22/95 Kendra Kratkiewicz These changes address bug 3461, in which filing was overwriting display's buffer because Microsoft was returning an incorrect max page height. This is a temporary solution and should be revisited in the future when and if we come up with a better long-term solution. MODULES: 3RDPARTY, LIBGFS FILES: awview32.dll in 3RDPAETY: replaced the updated dll with the original because Microsoft's bug fix caused too much of a performance degradation. gfsawd.cpp in LIBGFS: Artificially inflates the max page height returned by ViewerOpen by 5 lines so that we won't overrun Brian's buffer when we read the data later. ................................................... ...........................................BUILDING oiwh/bld0822 ========================================================================== 8/23/95 Rudy Fixed conversion of 4 bit pal images to BGR24. The blue and red bytest were being swapped incorrectly. (convert.c in oidis400) Pulled out IMGFileDeleteFile when an error occurs while trying to save a file. The clean up should now be happening at filing level. (save.c in oidis400) ========================================================================== 8/23/95 Kavanagh Modified OIADM400.DLL code to compile correctly for use on SBCS, MBCS or UNICODE systems. Changes involved using _tcsXXX() finctions in place of lstrXXX() and strXXX() functions. Modules affected: admnmain.c, initload.c, cepfrmat.c, noui.c, scntmplt.c, oiadm.h, stringid.h. ========================================================================== ................................................... ...........................................BUILDING oiwh/bld0823 ========================================================================== 9508.24 Captain Russo reporting... added rotate all flag functionality to the IMGFilePutInfo API MODULE: filing FILES: fiowrite.c fioinfo.c MODULE: include FILES: oifile.h ...Russo out. ========================================================================== 24 August, 1995, the birthdate of Win95. I, JClark: Added code to support the powerful "rotate all" feature for the powerful AWD (Aggravate Wang Developers) files. MODULE: libgfs FILES: gfsawd.cpp MODULE: include FILES: gfsawd.h ========================================================================== 8/24/95 Rob Roy Fix for bug id # 3585 module: oiprt400.dll files: prtpage.c prtexp.c prtintl.h Modified code to get buffer size from filing functions to use for AWD file reads so data won't overflow the buffer. ========================================================================== 24 August, 1995, the birthdate of Win95. JClark. Bug fix: wasn't setting curr_page in gfsputi call for AWD files. MODULE: oigfs400.dll FILES: gfsputi.c ========================================================================== ................................................... ...........................................BUILDING oiwh/bld0824 ................................................... ========================================================================== 8/25/95 Roland Bug #3655 P2 (large B&W image saved as BGR gets Out Of Memory error) This problem was caused by a couple of miscomputations in FILING and GFS. The routines in question were computing the short (2-byte) value for line byte length, which involved adding up the total bit count and dividing by 8. Unfortunately, the (long) intermediate value was cast to (short) before the division by 8 occurred, so for very large values, we got a truncation error that apparently triggered the resulting memory error. All fixed. Files changed: \filing\fiostrip.c \libgfs\gifinfo.c Modules: oigfs400.dll, oifil400.dll ========================================================================== 8/25/95 Ken Spina Bugs 3628, and 3719 against RUNTIME AND SCAN MODULE: OISSQ400.DLL FILES: twainif.c internal.h scanfile.c wangif.c scandata.h scanmisc.c Wrong return code being returned from TwainInterface() which didn't report a user abort. Thus the code kept on trying to scan the next page until adf empty or max page count reached. BMP files were not flaged when using scantofile() with pagesperfile > 1 and filepage > 1. It allowed user to think that it was doing it, when it was only overwriting page one. ========================================================================== 08/25/95 Kendra Kratkiewicz MODULE: LIBGFS, 3RDPARTY FILES: awview32.dll - Checked in another new version from Microsoft with a fix for the max height problem. This one should not be so slow. gfsawd.cpp 1) In WritePageInfo, where it checks for the rotate all flag, it was doing "&=" instead of just "&", which would have zeroed out the other flags. 2) In the same place, it was checking for the rotate flag in the FCT instead of in the GFS info structure that is passed in as an argument. 3) "errno" was being saved into the fct in gfsputi, but it wasn't getting set by any of this writing code, so I set it at the end of WritePageInfo. 4) In RotateAllDocs, it was getting the rotation from the FCT instead of from the GFS info structure that is passed in as an argument. 5) In IsAWDFile, added additional checks in the code to verify that it's an AWD file, and not just any compound document file. This will increase the accuracy of our error reporting. 6) Backed out our "yMax + 5" change. We no longer need to artificially the max height with the new awview32.dll from Microsoft. gfsread.c - changed an error code in ReadAWDBand from EINVALID_OPTION to EMSVIEWERERR. ============================================================================ ................................................... ...........................................BUILDING oiwh/bld082 ============================================================================ 08\26\95 HEIDI Bug 3493 P1 \libgfs\gfsutils.c \libgfs\tfmultpg.c change check of return codes from reads and writes in copybytes routine and _bfwrite routine. We now check for return code == HFILE_ERROR, rather than < 0. ============================================================================ ................................................... ...........................................BUILDING oiwh/bld0826 ................................................... ...........................................BUILDING oiwh/bld0827 ============================================================================ 8-28-95 Brian Added error checking for convert image calls to invalid image types. ============================================================================ 8/28/95 Rudy Initialized nBytes in AnTextReadFile. This is the value returned for how much data was read in for a text from file type. If not initialized, in the case of an error (like file which does not exist) it returns a garbage value and causes a crash. File: antext.c in oidis400 ========================================================================== 8/28/95 Roland Bug #3737 P2 This problem was another instance of bug #3227 (fixed 8/1/95) in that the IMGFileCopyPages() function was forgetting to turn off both the FIO_NEW_FILE and FIO_OVERWRITE_FILE flags after the first page of a multipage copy operation. The original bug reported the FIO_OVERWRITE_FILE problem, this one is reporting the FIO_NEW_FILE problem, which I should have caught the first time around, but I didn't, so you'll have to shoot me now. But before you do, let me just mention that the same fix applied here, i.e., the flag is now changed to FIO_APPEND_PAGE after the first iteration. Files changed: \filing\fiocopy.c Modules: oifil400.dll ========================================================================== 8/28/95 Roland Bug #3683 P1 That weird BMP header that I thought was pre-3.0 Windows format apparently wasn't - according to the source, it's "OS2" format, and when we (i.e., I) put in the kludge to allow us to read back our old, badly-generated BMP images, OS2 support broke because the original code had forgotten to fill in two fields, one of which (biSizeImage) was used in the kludge. So I fixed it to correctly compute the value of that field, and things work fine now (we can now display both Garry's 256color.bmp file and the one that Domenic had run across a couple of months back). Files changed: \libgfs\gifinfo.c Modules: oigfs400.dll ========================================================================== 9508.28 Captain Russo reporting...just when you think you can't be any more apathetic MODULE: filing FILES: fioinfo.c fixed error check that was not necessarily required in IMGFilePutInfo function, hope this gets us AWD Last Info working!!!!!!!!!!!!! ...Russo out. Work smarter not harder! ========================================================================== ................................................... ...........................................BUILDING oiwh/bld0828 ========================================================================== 9508.29 Captain Russo reporting...things look bleak, dilithium crystals damaged MODULE: filing FILES: fiowrite.c added code to CleanupWrite to delete file we're writing ONLY when we've created it! ...Russo out. ...Scotty's passed out drunk! ========================================================================== 9508.29 Goddard fixed bug 3704 P2 \filing\fiowrite.c - added check in IMGFileOpenForWrite to check for page operations on file types other than TIF and AWD. \include\oierror.h - added FIO_BAD_PARAM_COMBO error code ========================================================================== 8/29/95 Jennifer Wu OIUI400.DLL ui\oiui400.rc oiattrib.c Added line and rect dialog box template without Transparent check box. OIUI400.DLL ui\attrbox.c libmain.c Changed the background color of 16 custom define color control in attribute dialog box to the Win95 default background color. ========================================================================== ................................................... ...........................................BUILDING oiwh/bld0829 ................................................... ========================================================================== 8/30/95 Roland Oops - HJG's change of 8/29 didn't allow for creation of new files via IMGFileOpenForWrite() - they'd get a 703 error resulting from the failed attempt to open them for O_RDONLY to check for the file type & pageopts combination. I moved things around so nonexistent files don't check for anything (new-file conditions will be checked later, if at all). Files changed: \filing\fiowrite.c Modules: oifil400.dll ========================================================================== 8/30/95 Kavanagh Changed input parameter checking in exported functions from testing the validity of pointers via IsBadStringPtr, IsBadReadPtr, etc. to just testing for NULL. This was done for performance reasons: the IsBadXXX calls can take significant runtime time (I've observed up to 18ms for IsBadReadPtr). OIADM400.DLL Modules affected: cepfrmat, noui, scntmplt, initload. ============================================================================ ................................................... ...........................................BUILDING oiwh/bld0830 ========================================================================= 8/31/95 John Clark Checked in lots of code required to do AWD writing. Files changed: \libgfs\gfsawd.cpp \libgfs\gfswrite.c \libgfs\gfsopts.c \libgfs\gfscreat.c \libgfs\gfsdelet.c \include\gfct.h \include\gfsawd.h Module: oigfs400.dll ========================================================================== 8/31/95 Ken Spina Bug Fix 3374 P2, actually 3774. Module: OISSQ400.DLL Files: scandest.c, scancomm.c and destcom.c Needed to make sure of page count in file so would not delete pages in file if mp file. To distinquish when to use the OVERWRITE_FILE or OVERWRITE_PAGE flag to SavetoFileEx when overwiting page 1 of a file. Need OVERWRITE_FILE for bmp files. ========================================================================== 8/31/95 Jennifer Wu OIUI400.DLL ui\attrbox.c Setfocus on the linewidth when the line attribute dialog box displays. ========================================================================== 8/31/95 Ken Spina Bug Fix 3558 P2 Module: OISSQ400.DLL Files: destcom.c Error check for invalid page range when PagesPerFile <= actual pages in an existing file. No check was ever made for invalid number. Note: This has not been entered into the beta version line ========================================================================== 8/31/95 Kendra Kratkiewicz Bug fix # 3751 MODULE: FILING FILES: fiordopn.c - Code was calling IMGFileStopInputHandler when it should have been calling IMGFileStopInputHandlerm. This was causing improper cleanup after IMGFileOpenForRead errors, leaving the file open. fioterm.c - In IMGFileStopInputHandler, an if statement was using a single equals sign instead of a double one, which causes improper cleanup behavior. Note: This will be checked into the Beta 1 source tree. ============================================================================ 8/31/95 John Clark MODULE: GFS FILES: gfct.h - Moved 3 fields over from gfsinfo structure. gfs.h - Moved 3 fields over to fct structure. gfsread.c - Updated references to the 3 fields moved as above. gfsawd.cpp - Same as in gfsread.c - Also made changes to allow deletion of a range of pages from an AWD. ============================================================================= 8/31/95 JClark MODULE: GFS FILES: gfct.h gfsawd.cpp Had to add a field to the fct in which to save temp file name for AWD write. =========================================================================== ................................................... ...........................................BUILDING oiwh/bld0831 ========================================================================== 9509.01 Captain Russo reporting...all engines dead! MODULE: filing FILES: fioinfo.c added error for IMGFilePutInfo when we get called to do it for non-AWD files, FIO_UNSUPPORTED_FILE_TYPE ...Russo out. All engineers brain dead! ========================================================================== 9/1/95 Jennifer Wu P1 3860 OIUI400.DLL ui\attrbox.c Enter the line width in the line attribute dialog box, the enter number get reversed. eg enter 67, show 76. ========================================================================== 9/2/95 Roland Bug #3965 (P2) The change that was put in to detect the EINVALID_COMPRESSION error, which was added to GFS for compressed BMP files, got inadvertently lost when the additional change for "Obsolete AWD File" error was added. I think it's working OK now. Files changed: \filing\wgfsgeti.c Modules: oifil400.dll ========================================================================== 9/2/95 Roland Bug #3939 (P2) Bug #3918 (P1) Appending/Inserting an AWD file to a TIF or AWD file would not work correctly due to the fact that the vertical size returned in OpenForRead() is too large. We use that size in OpenForWrite(), and the various WriteData routines use this information to determine end-of-file on output, so that was not being correctly determined and the resulting output image was bad. It's been fixed by simply reading the entire AWD file up front to determine the true vertical size, then closing and reopening it for the conversion. If someone complains that it's too slow, give them Bill Gates' phone number. Files changed: \filing\fiocvt.c Modules: oifil400.dll ========================================================================== 9/2/95 Rob Roy module: oiprt400.dll files: prtpage.c Fixed problem caused by AWD file pages having less lines than the vertical line count returned in the file info structure. IMGPrtFiles was returning an end of file error code and not printing the file(s). ========================================================================== 9/2/95 JClark MODULE: GFS FILE: gfsawd.cpp Fixed 2 problems: Doc info structure was being overwritten with a default doc info structure when a stream was split. Page insert was failing because I needed to split the stream at the insertion point before doing the page shuffle. ========================================================================= 9/2/95 JClark MODULE: GFS FILE: gfsawd.cpp Fixed another bug with page insertion/deletion. The ExtractandPutBack routine wasn't handling all cases correctly, and was doing some pretty stupid things when the insertion point was the first or last page of a stream. ========================================================================== 9/3/95 Roland Captain Russo, report to the brig! Bug #4047 (P2) In yet another case of Bug Revival, IMGFileCopyPages() again started deleting the destination file when the caller specified FIO_NEW_FILE and the file already existed (it also returned an error, of course, how nice of it). This problem had been fixed (7/27), but popped back in again as a result of changes made on 8/29 to correct related problems with deleting destination files at the (more general) OpenForWrite() level. I think it's all fixed correctly now, but we've certainly heard THAT before, haven't we? Files changed: \filing\fiowrite.c Modules: oifil400.dll ========================================================================== 9/3/95 Roland no bug filed on this one A problem was discovered attempting to insert/append AWD files that was reported as Out Of Memory. Turns out this was also in IMGFileConvertPage() (gee, what a surprise!) and was caused by a check, which I missed when I put in the "bandsize" fix of 8/15, for buffer size greater than "MinBufSize". The check itself was actually a bug in the GlobalAlloc() loop, but since I wanted to optimize the AWD buffer allocation at some point anyway, rather than kludge up the loop I simply changed the AWD logic to allocate the largest MULTIPLE of bandsize less that 32K that it can get away with, which eliminates the loop gotcha and (potentially) speeds up the code. Files changed: \filing\fiocvt.c Modules: oifil400.dll ========================================================================== 9/4/95 Roland Bug #3941 (P2) (Not yet fixed in Beta 1 line!) Insert/Append of a JPG or TIFF JPEG image into a TIFF file results in a new, extremely bad quality, image page. This seems to be caused by the fact that IMGFileGetInfo never, as far as I can tell, returns JPEG information in the FIO_CGBW compression_info1 field. Save / Save As appear to work because the OCX's have default values (Medium Compression, Medium Quality) that are used if there is no other JPEG compression information available. They do not do this for Insert/Append, apparently assuming that IMGFileConvertPage will get this information from the input file (ha!) I've modified the code to default to the same value as the OCX's if we're storing a JPEG image and neither the input arglist nor IMGFileGetInfo() provide compression info. The real problem here, i.e., that no compression info is returned from the IMGFileGetInfo() function, should be addressed at some point. Files changed: \filing\fiocvt.c Modules: oifil400.dll ========================================================================== 09/04/95 JClark MODULE: GFS FILE: gfscreat.c When gfscreat was called for a file that already existed, the fct and errno value were being mangled. I fixed it. =========================================================================== 9/4/95 Roland Bug #3591 (P2) (Not yet fixed in Beta 1 line!) Black & White BMP files whose 2-entry palette was reversed were not being displayed properly, since we ignore 2-entry palettes and assume the order of the two colors. I've corrected bmpinfo() to check for a nonzero first palette entry and, if so, to set GFS_BILEVEL_0ISWHITE instead of the usual GFS_BILEVEL_0ISBLACK, then added logic in the Read routines to reverse the bits is GFS_BILEVEL_0ISWHITE is detected (actually an extra argument to the FlipBuffer() routine that is used to reverse the BMP line order). Note that this change is for black & white images only - other bicolor BMP images will still not be displayed properly, and there are currently no plans to change this. Files changed: \filing\filing.h, fiostrip.c, fioread1.c \libgfs\gifinfo.c Modules: oifil400.dll, oigfs400.dll ========================================================================== ................................................... ...........................................BUILDING oiwh/bld0904 ................................................... ========================================================================== 9-4-95 Brian MODULE: display The call to IsRegWnd has been removed from all calls. This is because just bring up ImageVue, displaying snoopy.tif, and then closing caused this call to be made 208 times resulting in alot of lost time. Therefore this was deleted for performance reasons. The side effect is that any QA script that checks for unregistered window handle will no longer get an error code returned (or atleast not the same error code). ========================================================================== 9/4/95 Rob Roy module: oiprt400.dll files: prtexp.c Fixed problem where list of files to print passed to IMGPrtFiles contains annotated images followed by non-annotated images and the non-annotated images come out blank. When printing the non-annotated images, the code was passing the apps window handle on a file open call and passing the handle of a hidden window (used for annotated images) on file read calls. ========================================================================== 9509.05 Captain Russo reporting... FIXES BUG 4071 MODULE: filing FILES: fiocvt.c Fixed a problem with IMGFileConvertPage when it attempts to write to an AWD file, here's the story and it's a long one. The IMGFileConvertPage function calls IMGFileOpenForWrite and IMGFileOpenForRead with ALIGN_WORD hardcoded. This was a problem for AWD writing which needs to have DWORD, ( 32-bit), boundaries. Additionally, we could not fix this problem by merely allocating our buffers so that they were DWORD bounded, because the extra bits on the end of each line would be set to 0, thus causing a black stripe to occur along the right hand side of every resultant page of the AWD written in this way. So, the solution we have is to force the alignment to be BYTE for AWD output files and then the work of copying the data out to the file, with the proper masking of the extra bits at the end of each line would all be done in the WriteAWD function, ( in fiostrip.c). This only occurs when AWD files are written via this IMGFileConvertPage function, normal display and save works ok. The IMGFileConvertPage is called to perform an append page to a file. ...Russo out. ========================================================================== 09/05/95 Kendra Kratkiewicz MODULE: LIBGFS FILES: gfscreat.c In CreateAWDFile, initialized AWDJunk to NULL (error caught by optimization build). =========================================================================== 9/5/95 Roland Bug #4100 (P2) Bug #4092 (P2) Bug #4089 (P2) Bug #3979 (P2) All of the above deal with attempts to save non-Black&White image data to an AWD file, which used to go through IMGFileOpenForWrite() without being detected (i.e., AWD supports only Black & White, so anything else written out to an AWD file will result in garbage). We now check for this and return an appropriate error code, which I assume filters through the IMGSaveToFileEx() routine but (I think) may be getting lost in either the OCX or the application, but that's someone else's problem (Thelma says she filed bugs there, too). Files changed: \filing\fiowrite.c Modules: oifil400.dll ========================================================================== 9/5/95 Ken Spina No Bug reported: Problem: When we do setup we fake a scan (pre maturely abort), the TWAIN spec says when using the UI the source must be shut down if we don't have a cancel from scanner. So the code unseen by the user shuts it down and opens it again to satisfy the condition. We save the capabilties and restore them upon the open of the data source (ds). This should eliminate many scanners from gpf'ing when doing a setup and then a scan. Or a scan when the UI is always used. Files Changed: \scanlib\opts.c, twainops.c, and dc_scan.c Modules: oislb400.dll ========================================================================== ................................................... ...........................................BUILDING oiwh/bld0905 ................................................... =========================================================================== 9/6/95 Roland Bug #3764 (P2) Corrected a problem introduced on 8/22 with the fix of bug #3543 - a side effect of the change was to lose the bad status code from Get_Compress_Flags, which was reporting that LZW was an unsupported compression type, so the call to IMGFileOpenForRead() ended up returning prematurely with a 0 status, and subsequent IMGFileReadData() calls failed because of property list(s) that hadn't been allocated due to the terminated Open call. Files changed: \filing\fiordopn.c Modules: oifil400.dll ========================================================================== 9509.06 Captain Russo reporting... FIXES BUG 4057 MODULE: filing FILES: fiostrip.c added code to mask extra bits when writing an AWD file ...Russo out. ========================================================================== 9/6/95 Roland No bug was reported about this, but in the process of reporting another problem, someone pointed out that an IMGFileConvertPage() operation using a WIFF file as input completed successfully. Given that WIFF files are, as far as I know, Formata Non Grata in the Norway release, I've changed the open_output_file and open_input_file routines to reject WIF format, so we shouldn't encounter any more of this sort of thing in the future. Files changed: \filing\wis.c Modules: oifil400.dll ========================================================================== 9/6/95 Rob Roy module: oiprt400.dll files: prtpage.c Fixed code that calculates how to do fit to page when images horizontal and vertical dpi are not equal. Fixed bug where printed images came out looking squashed. ========================================================================== 9/6/95 Rob Roy module: oiprt400.dll files: prtexp.c Calculate vertical pixels of AWD files by reading in data because number returned from file info call may not be correct. This was causing the fit to page calculations to be incorrect. ========================================================================== 9/6/95 Roland A bug was reported indicating that we did not return the correct error code for "obsolete AWD file", and it turns out that the wgfsopen() function was not, in fact, checking for that (it wasn't actually checking the gfs error code at all). It now does, but the bug is not entirely resolved in that it turns out that we're NOT getting that error code, but rather one that indicates "Viewer Error" from our favorite Microsoft routines. Kendra is investigating this further, and we'll attempt to resolve it in a subsequent update. Files changed: \filing\wgfsopen.c Modules: oifil400.dll ========================================================================== 09/06/95 Kendra Kratkiewicz MODULES: FILING, LIBGFS FILES: fiordopn.c, gfsdelet.c, gfsopen.c - Updated to handle modified interface to IsAWDFile. gfsawd.cpp - Changed the interface to IsAWDFile to provide better error reporting. Also, fixed a problem where I wasn't freeing a string returned by the enumerator in CountStreamsInStg. ============================================================================ 9/6/95 Roland Bug #4132 (P2) As reported two entries back, it seems that as of the latest Microsoft AWD DLL, we're getting a vague error back from their "Parse" call for an obsolete AWD file format. Prior to this DLL update, we used to detect the obsolete format ourselves, so now there are effectively two different GFS error codes that can map to FIO_OBSOLETEAWD. I've modified wgfsopen() and wgfsgeti() to check for both of these, and I've also changed the description of the FIO_OBSOLETEAWD error to indicate that it could be the result of an obsolete or invalid AWD file (we have no idea what the vague "Parse" error indicates, and it COULD indicate a bad file, not just an obsolete one). Files changed: \filing\wgfsopen.c, wgfsgeti.c \include\oierror.h Modules: oifil400.dll ========================================================================== 9/6/95 Ken Spina Checked in the Final release of TWAIN Committee's 1.6 Version for TWAIN. FILES: TWAIN.DLL, TWAIN_32.DLL, TWUNK_32.EXE, and TWUNK_16.EXE DIR: 3rdParty ========================================================================== ................................................... ...........................................BUILDING oiwh/bld0906 ................................................... ========================================================================== 9/7/95 Roland Bug #3745 (P2) Two problems here. The first was a typo in the IMGFileOpenForWrite() internal SetFileInfo() routine, which attempted to check the destination page number for 0 but checked the page count instead (oops!) The other was a failure to check the destination page number for FIO_OVERWRITE_PAGE right up front in IMGFileCopyPages() - waiting until later failed because by that time the option had been set to FIO_APPEND_PAGE because of prior goofy calculations made using the invalid page number. Things seem to be working OK now, i.e., any IMGFileCopyPages() page number out of range for either the OVERWRITE or INSERT option now gets kicked out with a 714. Files changed: \filing\fiowrite.c, fiocopy.c Modules: oifil400.dll ========================================================================== 9/7/95 Jennifer Wu OIUI400.dll ui\oiuicom.c oiui400.rc Related to P1 bug 3846 Set the file filter string of the file open and file save as dialog box as wangimg.exe setting. Which is for file open (TIFF,AWD,Bitmap,JPEG,PCX,DCX,All files) for file save as (TIFF,Bitmap,AWD) ========================================================================== 9509.07 Captain Russo reporting... MODULE: filing FILES: fiordopn.c added band_size setting to 31*1024 for reading AWD files ...Russo out. ========================================================================== 9509.07 Captain Russo reporting... MODULE: filing FILES: fioread1.c modified the ReadAWD function so that when we have to invert the data coming in from the file, we loop with a pointer to an "int", ( i.e. 4 bytes at a time) to increase the loop speed. This loop only occurs for AWD files that were NOT written by oifil400.dll ...Russo out. ========================================================================== 09/07/95 Kendra Kratkiewicz MODULE: LIBGFS (oigfs400.dll) FILES: gfsawd.cpp - Fixed a bug in IsAWDFile where I was improperly setting the boolean return value. This was, believe it or not, causing an error when trying to save the TIFF thumbnails. ============================================================================= 9/7/95 Roland Bug #3623 (P2) This hardly seems to qualify as a P2, but no matter ... The problem here is that attempting to do IMGFileCreateDir() on a diskette that isn't mounted returns "Directory Already Exists". The code was checking for DOS error "EACCES" instead of "EEXIST", so I've changed that and we now return "Create Dir Attempt Failed" for anything except a true "directory exists" condition, in which case we return the correct error. And no, we aren't going to attempt to return anything fancier than "Create Dir Attempt Failed" for the general error case - DOS won't tell us what the problem is, and rummaging around through various system calls to determine the actual "access" problem is way at the bottom of our priority list at the moment. Files changed: \filing\fiotmpnm.c Modules: oifil400.dll ========================================================================== 9/7/95 Ken Spina Files: TWAIN.H of the include directory Comment: Update twain.h file to the released version for TWAIN 1.6 ========================================================================== 09/07/95 Kendra Kratkiewicz MODULE: FILING FILES: wis.c - In open_output_file, fixed a misplaced curly brace that was ending an else clause in the wrong place, causing us to fall into code that we shouldn't have, causing a bogus return code. ============================================================================= ................................................... ...........................................BUILDING oiwh/bld0907 ................................................... ============================================================================= 9/8/95 Roland Bug #3553 (P3) Bug #3357 (P2) Both of these problems concern incorrect messages generated when attempting to open files whose names are either invalid or which are contained within nonexistent directories. Correcting these problems involved eliminating assumptions about error codes from GFS or other places, and required adding several calls to the internal IMGExistingPathOrFile() routine to verify whether or not a file actually exists. In addition, I've added a new error code, FIO_FILE_NOEXIST, to distinguish it from FIO_OPEN_READ_ERROR, which, contrary to public opinion and the 3.7 IDK manual, does NOT mean the same thing. We need to make sure everyone else realizes this as well. Files changed: \filing\fiocheck.c, fiocopy.c, wgfsopen.c, wis.c, fiordopn.c Modules: oifil400.dll ============================================================================= 9509.08 Captain Russo reporting... MODULE: filing FILES: fioread1.c we were ignoring the AWD_INVERT flag when reading, now we correctly process it fiostrip.c we were inverting the AWD data when writing, which we should NEVER do, so it is now removed and we write out the data as we get it from caller ...Russo out. ========================================================================== 8 August, 1995 JClark MODULE: GFS FILES: gfswrite.c & gfsawd.cpp Was not setting proper return code from gfswrite (rc = bytes written). Am now. =========================================================================== 9/8/95 Jennifer Wu OIUI400.DLL ui\oiuicom.c Removed the overwrite flag for file save as dialog box. ui\oiui.h Added couple file filter index define for scan caller keep track the filter type. ========================================================================== 9/8/95 Rudy The dc used for printing will now be compatible to the printer DC, not the screen DC. Win95 is supposed to be able to handle text properly on printer DCs (which is why the kludge was put in the first place for win 3.1). Also fixed printing of text marks. Fixed a fit to width problem at certain scales. Files: antext.c, repaint.c, setparm.c in oidis400.dll ------------------------------------------------------------------------------------ ============================================================================= 9509.08 Captain Russo reporting...Come on Rudy, we use "=" NOT "-"!!!! MODULE: include FILES: oierror.h some yutz forgot to check in FIO_FILE_NOEXIST so I had to, as filing error ...Russo out. ========================================================================== 9/8/95 Kavanagh removed the Cepformat integer from the CMTable structure, since it was not being used (change in stringid.h); changed default for cepformatgray to "00000000" and changed default for cepformatcolor to "32640008" (both changes in pvadm.h. Also removed initialization code for Cepformat (in initload.c) <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> ><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>< 9/8/95 Jennifer Wu OIUI400.DLL ui\oiui400.rc Reposition the control buttons in all dialog box. ========================================================================== 9/8/95 Ken Spina bug #4122 P3 - Should of been higher priority When a cancel with no data occurs, found the display left open, needed to close it down on a cancel, which could come from the scanner, or the user. MODULE: memory.c of OITWA400.DLL ========================================================================== ................................................... ...........................................BUILDING oiwh/bld0908 ========================================================================== 9/9/95 Rob Roy Module: oiprt400.dll Reason: Performance Files: prtexp.c prtpage.c Changed code to not read data with filing calls but read from display instead so cache will be utilized. Hopefully, this will improve performance. ========================================================================== 09 September, 1995 MODULE: FILING FILES: fiocvt.c, fiowrite.c, gfs.h Several small changes to ensure that invert bit is set in the awd flags. =========================================================================== 9509.11 Captain Russo reporting... MODULE: filing FILES: fioinfo.c There was a bug with AWD and improper inverting, ( what else is new!). It occurred if we had written out data to the AWD file, ( at which time we set the invert flag for that page), and then we later view that page and cause the application to change the last viewed state of that page, ( e.g., the viewing scale). This would cause us to write out the scale info to the AWD info stream, but filing would get a flag value of 0, and this would be written out, overwriting the previous flag value of invert. Now we check that flag in the file and or it with the one we are writing out to preserve the invert! ...Russo out. ========================================================================== 9/11/95 Ken Spina minor variation on bug #4122 P3 Needed to check other error codes beside the cancel, so when a failure code is returned from the scanner. While was there, changed the value 6 to refer to TWRC_XFERDONE for better understanding of the code. MODULE: memory.c of OITWA400.DLL ========================================================================== 9/11/95 Jennifer Wu OIUI400.DLL ui\attrbox.c Changed the title size from 35 to 50 per international staff request. ============================================================================= 9/12/95 Roland Bug #3763 (P3) Once again, the (allegedly obsolete) Windows OpenFile() routine has proven to be completely unreliable. Last time it was the "delete" option that didn't work correctly; this time it's attempting to open a file whose name contains 255 characters. It actually works correctly if the named file doesn't exist (returns "EEXIST" error), but fails if the file does exist (returns "file name too long"). Go figure. I replaced the call with a call to CreateFile(), which is its supposed replacement, and that seems to work. Note that I've replaced only the call in IMGFileAccessCheck(); there are various others that I need to replace as well, but this seems to be the only one causing problems at the moment. Files changed: \filing\fiocheck.c Modules: oifil400.dll ============================================================================= 9/12/95 Rob Roy Module: oiprt400.dll Reason: Performance Files: prtexp.c prtpage.c prtintl.c prtintl.h Replaced IMGFileGetInfo call with IMGGetParmsCgbw because the print DLL is now getting its image data through the display DLL and should also get the image parameters through it. This should improve performance if the image being printed is in cache because the file does not need to be accessed with the IMGFileGetInfo call. ============================================================================= 9/12/95 Roland Follow-up to my previous entry (2 entries back): There was one more call to OpenFile() to get rid of, which was in the pegasus.c "retry_OpenFile()" function. This was referenced only via the fio_OpenFile macro, which has not actually been called by anyone ever since I removed calls to it which were being used for "delete" operations, so I pulled out all references to the function and macro, and commented out the function in pegasus.c. I also mentioned to Ken S. that he might want to get rid of the one call that he has to OpenFile() in the oitwain dll. Files changed: \filing\fiodata.h, pegasus.c Modules: oifil400.dll ============================================================================= 9/12/95 Heidi NO BUG NUMBER Changed code so that returns from reads and writes check for retcode == HFILE_ERROR rather than < 0. This i because read and write return WORDS not ints. \libgfs\tfmultpg.c \gfcntl.c \tfwrite.c \gfsgtdat.c \tfutil.c ============================================================================= 09\12\95 - HGODDARD NO BUG NUMBER \libgfs\tfwrite.c commented out 'writeifh' routine because it is no longer called. \libgfs\tfutil.c commented out 'tfcntifds' routine because it is no longer called. ============================================================================= ................................................... ...........................................BUILDING oiwh/bld0912 ============================================================================= 09\13\95 - HGODDARD NO BUG NUMBER \libgfs deleted contents of gfsintf.c, it is no longer used. Don't hurt me, I'm part Italian. ============================================================================= 9/13/95 Ken Spina No Bug reported: Problem: Change on 9/5/95 had a problem closeDS was deleting the productname, need to save and restore for openDS. This problem exhibited the wrong scanner being used after a setup if the twain default scanner was different. Could also happen after a scan with a scanner that always has a UI up when scanning. Files Changed: \scanlib\opts.c, and dc_scan.c Modules: oislb400.dll ========================================================================== ................................................... ...........................................BUILDING oiwh/bld0913 =========================================================================== 09/14/95 Kendra Kratkiewicz For bug #4284: wgfswrit was not properly propagating error codes from gfswrite, which made it look like an operation succeeded when it didn't (appending a page when hitting a disk full condition). MODULE: FILING (oifil400.dll) FILES: wgfswrit.c ============================================================================ 9/14/95 Ken Spina No Bug reported: Problem: When scanning with Image Vue, HP scanners use the TWAIN product name to show on the status dlg box, were not getting the correct title of application due to window handle was not application handle. Search for it and get it from the title. Title will not be correct for apps that pass title before file. Going with new window format - which is file before title. Should put in mechanism to revert back to old format if desired. Added: Added code to get the productname from the title bar, in format stated above. Now title will appear in scanning status box of HP scanners while scanning. Modules: SCANLIB (oislb400.dll) File: dc_scan.c ============================================================================ ................................................... ...........................................BUILDING oiwh/bld0914 ============================================================================= 9/15/95 Rob Roy Module: oiprt400.dll Reason: Prevent annotations from being burned into image in cache. Files: prtexp.c prtpage.c prtintl.c prtintl.h Removed printing method of reading from display and only print by passing display a DC to print to. ============================================================================= 9/15/95 Rob Roy Module: oiprt400.dll Reason: Fix for bug #4220 Files: prtintl.c When printing, the window of the window handle passed in was being disabled. To fix, the top parent of the window handle passed in is now being diabled instead. ============================================================================= 9/15/95 Ken Spina Module oislb400.dll - twainops.c Changed the code to get the TWAIN current values instead of default values on the initial open of the scanner. Found scanner venders not supporting the default value triplet. Thus not providing us O/i with critical info as type of image. This comes about in how the venders read the spec, when the spec says no default values, they interpeted as they need not supply a value. I believe the meaning to be the vender supplies what the value is to be. Thus the world of TWAIN. ============================================================================= ................................................... ...........................................BUILDING oiwh/bld0915 ................................................... ...........................................BUILDING oiwh/bld0916 ................................................... ...........................................BUILDING oiwh/bld0917 =========================================================================== 9/18/95 Kavanagh Modified oiver.h as per N. Fletcher's specification and added literals MY_FILE_DESCRIPTION and MY_FILE_NAME. =========================================================================== 9/18/95 Kavanagh Modified oiui400.rc, oiadm400.rc, and oiprt400.rc to each have an #include "oiver.h" line. Created oigfs400.rc, oifil400.rc, and oicom400.rc, each containing a single line: #include "oiver.rc"; edited gfs, fil, and com makefiles to compile the new .rc file, and link with it. Modified oidis400.rc which included oiver.rc with an "rcinclude" statement; changed it to a "#include" statement. All this so that VERSION info will be consistantly generated across our DLLs. (Note: oislb400, oissq400, and oitwa400 were properly set up for VERSION info; I did not have to change anything.) ============================================================================ 9/18/95 Jennifer Wu OIUI400.DLL ui/resource.h oiui400.rc attrbox.c Added error message OIANNOIMAGENAMEINVALID. OIUI400.DLL ui/oiuicom.c include/oihelp.h Added the HELPID_OI_REFNAMELISTLBL. P1 4287 OIUI400.DLL ui/oiattrib.c attrbox.c Added the CF_NOVERTFONTS flag to ChooseFont call. Prevent the vertical font show on the list. ============================================================================ ................................................... ...........................................BUILDING oiwh/bld0918 ................................................... ============================================================================= 9/19/95 Roland As part of the continuing effort to get the new compress/expand calls working, I've modified the CXDATA structure in the various places in which it occurs to include all variables required for both the old (WINCMPEX) interface and the new one. I also forced things to WORD or DWORD, as appropriate, to keep things consistent in 16-bit and 32-bit land. In addition, I've modified all the NEWCMPEX conditionals (#if) to allow me to build either Read or Write or both, so I can test out this stuff in both directions independently (which is much easier that trying to guess at which direction is generating bad data). Files changed: \include\oicmp.h \filing\fiordopn.c, fioread1.c, fiostrip.c \filing\fiosubs.c, fiotiff.c, fiowrite.c \w16cmpex\wincmpex.h \w32cmpex\t32cmpex.c, thunk.thk Modules: oifil400.dll, w16cmpex.dll, w32cmpex.dll ============================================================================= ................................................... ...........................................BUILDING oiwh/bld0919 ============================================================================= 9/20/95 Jennifer Wu OIUI400.DLL ui/attrbox.c resource.h oiui400.rc include/oierror.h Added error message OIANNOSTAMPTEXTINVALID. ============================================================================= 9/20/95 Rudy Fixed fit to width problems with certain window sizes. Fixed thumbnail scales and saves and checked into beta line. Files affected: save.c, setparm.c in oidis400 ============================================================================= 9/20/95 Roland Ref: Bug #4461 P2 This corrects a problem that was encountered when displaying a readonly image file, then saving it - the result file was also showing up as readonly due to a synchronization problem between the cache code (which still had the new file open) and the application/OCX code (which was calling IMGFileAccCheck() to verify the new file's access rights). IMGFileAccessCheck() attempts to open the file in the requested mode, which of course fails if the file is already open and the requested mode is Read/Write, so the result is that the file gets marked readonly even though it isn't. IMGFileAccessCheck() now calls IMGCacheUpdate() to finish caching the file before it attempts to open the file itself, so the conflict should now be eliminated. Files changed: \filing\fiocheck.c Modules: oifil400.dll ============================================================================= 9/20/95 G. Kavanagh modified oiver.rc: editted the copyright line (so that it will fit); added #ifdef APPSTUDIO_INVOKED block around all of the version info stuff, to keep the appstudio from screwing it up. ============================================================================ 9/20/95 Bob Gibeley Ref: Bug #4498, 4510 P1 In Memory.C of IMGTWA400.DLL, a IMGCloseDisplay() was being done in order to fix a bug where no repaints were occuring when no data was transfered from the scanner (paper jam or a quick cancel). This fixed the problem (avoided it is more like it) but caused other problems when the Image Edit OCX tried to Clear the Display Window. A bug was found in the Display repaint code (OIDIS400.DLL) when display is from scan and no data is transfered. This has been fixed, so do not close the display anymore, under any circumstances. Files changed: memory.c Modules: oitwa400.dll ============================================================================= ................................................... ...........................................BUILDING oiwh/bld0920 21 September, 1995 JClark MODULE: gfs FILE: gfsawd.cpp Wasn't creating temp files in the right place (the temp directory). In the bugDb, this is #4553. ============================================================================= ................................................... ...........................................BUILDING oiwh/bld0921 =========================================================================== 9509.22 Captain Russo reporting... FIXES 4156 P1 MODULE: display FILES: antext.c libmain.c finished fixing the WithinWordBreak problem for multibyte stuff, also changed calls to AnsiNext to call CharNext, ( AnsiNext are obsolete in Win32) ...Russo out. ========================================================================== 9509.22 Captain Russo reporting... MODULE: display FILES: antext.c yet another fix to the WithinWordBreak stuff for multibyte ...Russo out. ========================================================================== 9/22/95 Rob Roy Module: oidis400.dll Files: privprt.c repaint.c privdisp.h oidisp.def makefile oidis.mak Moved exported function PrivRenderToDC from repaint.c to privprt.c. The functionality was also changed to scale the image using the function StretchDIBits and passing the real printer DC to this function. Previously, a compatible DC to the printer DC was being created and StretchDIBits was being used to write the data to this DC. Then, the compatible DC data was being transfered and scaled to the real printer DC with the function StretchBlt. This was causing the dither pattern created for color data by black and white printer drivers to be scaled up along with the image. The more a color image was scaled up, the worse the quality would be. ========================================================================== 9/22/95 Rob Roy Module: oiprt400.dll Files: prtpage.c The new display function IMGPaintToDC is being used. This was supposed to replace PrivRenderToDC but was found to be slower when printing images scaled up and faster for images scaled down. Therefore, a combination of these two functions is being used to get the best performance. PrivRenderToDC is used for images being scaled up and IMGPaintToDC for images being scaled down. The main difference in the functions is in PrivRenderToDC the image is scaled by the printer driver through the function StretchDIBits and in IMGPaintToDC the display DLL scales the image before passing it to StretchDIBits. ============================================================================= ................................................... ...........................................BUILDING oiwh/bld0922 ................................................... ...........................................BUILDING oiwh/bld0924 ========================================================================== 9509.25 - HGODDARD All changes in FILING fiotmpnm.c Fixed routine 'FioRename'. A successful return from 'MoveFile' is TRUE and should be mapped to our SUCCESS, which == 0, return code. filing.h fiowrite.c fiowrcls.c Added new flag in FIO_DATA 'Copy_Temp_File'. This flag is used when an page modifications are made on an existing file, in which case a copy of the original file will be made for the modifications. In IMGFileWriteData and SetupWrite this flag is initially set to FALSE. If we successfully conclude each of these routines Copy_Temp_File will be set to TRUE. This will indicate, on close, to give the user back her/his original image file on an error, or rename the working copy with the original file name on successfully completing the write operations. This should fix all of those, 'I ran out of disk space, and my file is corrupted errors'. ========================================================================== 9/25/95 Rob Roy Module: oiprt400.dll oidis400.dll Files: prtpage.c prtintl.h engdisp.h Moved prototype for function PrivRenderToDC from prtintl.h to engdisp.h because the function is contained in the display DLL. ============================================================================= 9/25/95 Roland Heidi discovered that an old function called "AnExistingPathOrFile()" didn't work, and that a newer version called "IMGAnExistingPathOrFile()" did, so I deleted the old function and shuffled #include files and such accordingly. There was only one actual call to the function, from SCANLIB, that Ken S. says isn't currently executed, but I replaced it anyway. Files changed: \filing\filing.h, fileutil.h, oifil400.def \filing\fiocheck.c, wgfsopen.c, oiutil.c \filing\makefile (Mike R. had this locked, and will change it) \scanlib\exec.c, internal.h, pvundef.h Files added: \include\engfile.h Modules: oifil400.dll, oislb400.dll ============================================================================= 9/25/95 - HGODDARD \filing\fiocvt.c In convert routine we were not detecting an error if it occured writing image data. We are now. ============================================================================= 9/25/95 - HGODDARD \filing\tfmulpg.c Found some more cases where WORD return codes from reads and writes were being tested for < 0. I changed the checks in these cases to: if ((error_code == HFILE_ERROR) || (error_code == 0)) ============================================================================= 9/25/95 Kendra Kratkiewicz (changes reviewed by John Clark) MODULE: LIBGFS FILES: gfsawd.cpp -Fixed the problem where our viewer and Microsoft FAX viewer were interpreting the rotation in AWD files differently. (Their AWD spec says rotation is in degrees clockwise, but their viewer interprets it the other way. I changed our code to convert accordingly.) -Changed our code to default to 50% scale factor if we're reading in an AWD file that has no doc info yet. ============================================================================= 9/25/95 Roland Added NEWCMPEX conditionals to the spots in IMGFileOpenForRead() and IMGFileOpenForWrite() that were checking for 64K bits maximum width. If the new compression/expansion code is enabled (NT and future 95 stuff), then we now check for 64K bytes instead (wincmpex.dll had the 64K bit limit). Files changed: \filing\fiordopn.c, fiowrite.c Modules: oifil400.dll ============================================================================= 9/25/95 Jennifer Wu OIDIS400.DLL display\antext.c Added the multilanguage implementation to antext.c. It works on text and attach note mark with limited char set. ============================================================================= 9/25/95 - HGODDARD \filing\filing.h - prototype - IMGAbortTempFileCopy \filing\fiowrite.c - IMGFileOpenForWrite and IMGFileOpenForWriteCmp \filing\fiocvt.c - IMGFileConvertPage Added function IMGAbortTempFileCopy. A temporary copy of a file open for write with page append, insert, or overwite is created. All modifications are made to the temp copy. If all operations succeed, the original file will be overwritten with the temp copy. If something fails, a call to IMGAbortTempFileCopy will stop the overwrite. ============================================================================= ................................................... ...........................................BUILDING oiwh/bld0925 ============================================================================= 9/26/95 Jennifer Wu OIDIS400.DLL display/antext.c Adjust the font size in the text edit box. ============================================================================= ................................................... ...........................................BUILDING oiwh/bld0926 ============================================================================= 9-27-95 Brian Fixed pixel-to-pixel printing. oidis400.dll display\repaint.c ============================================================================= 9/27/95 - Heidi \filing\fiowrite.c bug 4642 In generating a temporary file name, watch for the case where there is no path on the original file. If this is the case, use current working directory. This won't work for client/server, but then again, what will ? ============================================================================= 9/27/95 - Heidi \filing\fiowrite.c bugs 4643, 4646 When allocating space for a file name, we were sometimes using MAXSERVERLENGTH for the buffer length. This was wrong and was replaced with MAXPATHLENGTH. ============================================================================= 9/27/95 Jennifer Wu OIUI400.DLL ui\attrbox.c Added multi-language support in text rubber stamp. Removed the string "Error Code = 0x****" from error message box. OIDIS400.DLL display\antext.c Fixed the problem repeat edit the text mark the char growth bigger and bigger. Removed the code of always setting English keyboard as default. ============================================================================= 9/27/95 GKavanagh Added version info to JPEG1x32.DLL and JPEG2x32.DLL. Did so by creating JPEG1x32.RC and JPEG2x32.RC; MYPROD.H for each DLL; and modifying the MAKEFILES to compile the .RC files. ============================================================================= 9/27/95 Roland (I haven't seen a bug report on this one) Lyle reported that various files were crashing during display, and it turns out that most of the files in question were 32-bit CYMK files, which we do not support but weren't checking for. We now check for these files, which is a simple matter of verifying that Samples_Per_Pixel is not greater than 3 (CYMK is 4 samples per pixel) and returning an appropriate error. Files changed: \filing\fiordopn.c, fioinfo.c Modules: oifil400.dll ============================================================================= ................................................... ...........................................BUILDING oiwh/bld0927 ========================================================================== 9509.28 Captain Russo reporting... MODULE: filing FILES: fiopcx.c fixed rounding error when reading 24-bit pcx images ...Russo out. ========================================================================== 9/28/95 Bob Gibeley Ref: Bug #3722 Fixed a bug in GetDSNames where the buffer pointer would write a DS Name every 32 chars. This should be every 34 chars as the TWAIN spec says 33 char max name plus a null. Note that this fix must coincide with a similar fix in the IMGSCAN.OCX module. Files changed: select.c Modules: oitwa400.dll ============================================================================= 28 September 95 JClark MODULE: gfs FILE: gfsawd.cpp Changed code so that if an AWD hasn't "been viewed" by either us or the powerful fax viewer, we will display it using default values for x-scale and y-scale. Also, fixed another bug with the calculation of image rotation (we and microsoft disagree on interpretation of rotation by nnn degrees - we mean clockwise rotation, they mean counterclockwise). ============================================================================= 9/28/95 Rob Roy Module: oiprt400.dll Reason: Performance Files: prtdc.c prtintl.h Added code to change the spooler settings to start printing after the last page of a job has been spooled. This is done to match what the MS fax viewer is doing so we can match their performance. ============================================================================= 9/28/95 Jennifer Wu OIDIS400.DLL display\antext.c Fixed the problem the text mark edit box didn't get correct font face and size. ============================================================================= 9/28/95 Roland Bug #4704 (P2), #4660 (P2) There was a problem with the delete/rename logic written to replace the original file with our successfully-updated work file at the end of an Append, Insert or Overwrite Page operation. The IMGFileDeleteFile() call was doing IMGCacheUpdate(CACHE_UPDATE_DELETE_FILE), which failed because a page was still in the display. We then renamed the work file, resulting in a new version of the original file that was out of sync with the cache. I've changed the code to call IMGFileDeleteFileNC(), which does no cache operation, and instead put the individual calls in IMGFileClose() itself, using CACHE_UPDATE_APPEND/INSERT/OVERWRITE, depending on the operation that was performed, and things are now back in sync. Files changed: \filing\fiowrcls.c Modules: oifil400.dll ============================================================================= 9/28/95 Roland (no bug reported that I'm aware of) There were various places in the code that were calling IMGCacheUpdate() with the CACHE_UPDATE_DELETE_FILE option when what we actually wanted was an option to simply finish caching and close the file. This was necessary for, among other things, AWD files (due to EXCLUSIVE open mode that the FAX Viewer DLLs use to open these files), but was not only causing the files to be closed, but also clearing the cache, thus causing a serious performance problem. We now have a new option to IMGCacheUpdate(CACHE_UPDATE_CLOSE_FILE) which does what we want. In addition to updating AWD-specific calls in OpenForRead() and GetInfo(), I also changed the call, added just recently, to the IMGFileAccessCheck() function so it also uses the new option. Files changed: \filing\fiocheck.c, fioinfo.c, fiordopn.c Modules: oifil400.dll ============================================================================= 9509.28 Captain Russo reporting... MODULE: filing FILES: fioinfo.c MODULE: include FILES: oifile.h added valid info flag functionality via gfs ...Russo out. ========================================================================== ................................................... ...........................................BUILDING oiwh/bld0928 ========================================================================== 9509.29 Captain Russo reporting... MODULE: include FILES: gfsawd.h added define for the new flag AWD_VALID_INFO ...Russo out. ========================================================================== 9-29-95 Brian display: save.c annot.c anbitmap.c antext.c setparm.c privdisp.h Fixed error checking for CanMarkBeScaled. Also changed its return from BOOL to int to follow normal api returns inorder to prevent this type of error in the future. Although the syptems of this problem are mostly hidden from normal testing it can cause saves and scaling to fail if there are any annotations on the image (that's how QA found it). It is reccomended to go into the product build. ========================================================================== 9-29-95 Brian display: annot.c Fixed painting of attach-a-note on a BW context. This bug #4713 is a Microsoft beta1 blocker. ========================================================================== 9/29/95 Bob Gibeley Ref: Bug #4655 This is a hack in order for the data source U/I to come up on top of our app. This will work with HP DeskScan (16bit or 32 bit source), HP PictureScan (16bit or 32 bit source, not available yet), any other 16 bit sources, and any source which is a DLL. This leaves 32bit EXE sources unable to display their U/I on top of our app. I know of one which is UMAX. // First look for HP DeskScan, then PictureScan, then THUNK_16 // This is a hack in order for the DS dialogs to come on top // of our app! Setting the window of THUNK_16 up front will // work with 16 bit data sources, but not 32bit. So we must // explicitly look for the main windows of DeskScan and Picture // Scan in case they are the 32 bit versions. This fix should // occur in the data sources themselves, as they assume their // window will stay in front when it is loaded (at the time the DS // is loaded). At this time it is hidden and is only visible when // needed. When it is made visible, it should be set on top! Files changed: MISC.C Modules: OISLB400.DLL ============================================================================= 9-29-95 Brian display: cache.c Bug #4741. Fixed discrepency between cache size of allocate and cache size of free. ============================================================================= 9-29-95 Jennifer Wu OIUI400.DLL ui\attrbox.c Fixed the bug of after access the mark attribute of the highlightrect, the bHightlighting bit being overwrite. ============================================================================= ................................................... ...........................................BUILDING oiwh/bld0929 ................................................... ============================================================================= 9/30/95 Roland Bug #4756 (P1) Larry M. reported that zillions of new "Access Violation" errors were popping up in the debugger, and I tracked them down to Yet Another Problem that we triggered with the new temporary-file logic. Turns out that the SetupWrite routine, which is where we check for whether or not to create a temp file, is called by both IMGFileOpenForWrite() and IMGFileWriteData(). We weren't bypassing the temp-file logic for WriteData() calls, which we should have, and the result was NULL file names getting passed around all over the place, wreaking havoc in IMGAnExistingPathOrFile() and/or IMGFileAccessCheck() and heaven knows where else. I've modified the SetupWrite() code so that if it is being called from WriteData(), i.e., if the OpenFile argument = FALSE (and filename = NULL), we bypass the temp file logic. This not only fixes Larry's "Access Violation" problem, but also (I believe) corrects the "crash" problem that Mary H. encountered a few days ago in the same code, which was apparently just another manifestion of the NULL file name mess. Files changed: \filing\fiowrite.c Modules: oifil400.dll ============================================================================= ................................................... ...........................................BUILDING oiwh/bld1001 ................................................... ============================================================================= 10/2/95 Roland Bug #4267, #4379, #4508, #3210 (all Deferred) This change enables the new Compression/Expansion logic in oidis400.dll. This new code eliminates the need for the w16cmpex and w32cmpex DLLs, and in the process corrects problems reported in the above - deferred - bug reports. Note that the first three are related to large image processing, and the last one refers to our inability to get the #^&$$&^@ w16cmpex DLL out of memory after a run of ImageVue (which is still, as far as I'm concerned, a Microsoft bug, but at this point I assume nobody cares.) Files changed: \filing\makefile Modules changed: oifil400.dll Modules deleted: w16cmpex.dll, w32cmpex.dll ============================================================================= 10-2-95 Brian display: convert.c Bug #4688. Fixed memory usage. ============================================================================= ................................................... ...........................................BUILDING oiwh/d10022 ================================================================================= 10/2/95 Rudy Bug # 4693 Fixed bad pointer reference. open.c, save.c in oidis400 Bug # 4764 Moved update_rotate_all case in imgcacheupdate to top of switch (per Brian) cache.c in oidis400 ================================================================================= ========================================================================== 9510.02 Captain Russo reporting...what was supposed to happen today? MODULE: filing FILES: fioinfo.c fixed setting of bLastInfoValid ...Russo out. ========================================================================== 10/02/95 Kendra Kratkiewicz, changes reviewed by John Clark MODULE: LIBGFS (oigfs400.dll) FILES: gfsawd.cpp - Bug #4764: We had 3 problems. 1) We weren't adjusting our rotation to a counter clockwise value when doing rotate all (RotateAllDocs). 2) We weren't setting the "been viewed" indicator when doing a rotate all, which means that the effects of it weren't being seen (RotateAllDocs). 3) We weren't properly calculating the "valid info" flag (GetAWDInfo). gfsawd.h Added a couple of #defines for strings while fixing the above. =========================================================================== 10/2/95 Jennifer Wu OIUI400.DLL ui\attrbox.c P2 3859 Transparent label in Highlightline dialog box stay in focus when click on th color palette. Fixed. =========================================================================== 10/2/95 Rudy Bug # 4788 Fixed bad paint when DC is set to other than current window DC. repaint.c in oidis400 -------------------------------------------------------------------------------- ................................................... ...........................................BUILDING oiwh/d10031 =========================================================================== 10-3-95 Brian display: cache.c Bug #4779 - Fixed delete page bug. =========================================================================== ................................................... ...........................................BUILDING oiwh/d10032 =========================================================================== 10/3/95 Jennifer Wu OIUI400.DLL ui\oiui400.rc P3 4780 Changed accelerate key for Options print dialog box from "t" to "i". OIUI400.DLL ui\attrbox.c P2 4648 Fixed the problem of the stamp text edit box have extra space at left margin in the create text stamp dialog box. OIUI400.DLL ui\attrbox.c oiui400.rc Added the stamp title to the stamp error message box. ============================================================================= 10/3/95 Roland (no bug yet, and we want to keep it that way) In preparation for support of the ImageVue application on NT platforms and, in particular, on non-Intel ones, we need to get rid of any remaining routines written in Intel assembler. Aside from WINCMPEX, which is kaput, there were two other routines written in assembler - the BMP "negate bits" routine, which I had originally written, and the PCX "PlaneToColor" routine, which I haven't figured out yet. So I replaced the former for now. I'll get to the other one after I determine exactly what it's doing. Files changed: \filing\fioread1.c Modules: oifil400.dll P.S. The rewritten BMP "negate bits" routine is executed for BMP files whose 2-entry (black & white) palettes are backwards. The only files I know to be in this state are in t:\temp\larryr\bmp for anyone who's testing out this change. ============================================================================= 10/3/95 Rudy Bug # 4825 Fixed setting of alternate DC so it is remembered past the first repaint repaint.c in oidis400 ------------------------------------------------------------------------------ ................................................... ...........................................BUILDING oiwh/d10041 ................................................... ...........................................BUILDING oiwh/d10042 ============================================================================== 4 October 95 JClark MODULE: gfs FILE: gfsdelet.c We weren't deleting an awd file if all pages were deleted. Now we are. ============================================================================ 10/04/95 Rob Roy Module: oidis400.dll Reason: Fix for bug #4836 Files: privprt.c Pen width scaling wasn't being done when printing. Now, the horizontal scale is always being used, but this may change in the next release and the vertical scale may be used in some circumstances. ============================================================================= 10/4/95 Rudy Bug # 4839 NegateBits wasnt accounting for grayscale images always assuming images passed in to be b&w. Thus only the top eighth portion of the image was valid and everything else negated (1bit/pixel vs 8bits/pixel) File: ccitt.c, privdisp.h in oidis400 -------------------------------------------------------------------------------- ================================================================================ 10/04/95 Bob Gibeley Ref: BUG #4823 P1 Internal application errors were occuring when a scan to file with no display was done with no ADF present. This only occured in the release code, not the debug code. The culprit was the /O2 switch which optimized for speed. This has been changed in the makefile to be /Od, regardless of the build version. Files changed: Makefile Modules: OISSQ400.DLL ============================================================================= 10/4/95 Jennifer Wu OIUI400.DLL ui\oiuicom.c Hided the Collate control in the print dialog box. ============================================================================= ................................................... ...........................................BUILDING oiwh/d10051 ============================================================================= 10/5/95 Jennifer Wu OIUI400.DLL ui\attrbox.c P2 4828 Fixed the problem of the font size of the text stamp being changed. ============================================================================= 5 October 95 John Clark Module: gfs File: gfsdelet.c Corrected 2 typos. ============================================================================ ................................................... ...........................................BUILDING oiwh/d10052 ================================================================================= 10/5/95 Rudy Bug # 4847 Image stamps were not being printed properly because the window scale was being used rather than the print scale passed in (the two can be very different). anbitmap.c, annot.c, privdisp.h in oidis400 ================================================================================= 10/5/95 Bob Gibeley Ref: Bug #4846 P2 Since the Stop button has been enabled on the Scan OCX U/I, the code under it is now functioning. This function worked well if display was on, but when the display was off (Scan to File Only , or Fax), it would not work. This was because the handle passed to IMGScanOCXService() to stop the scan was not the handle to the window owning the Scan Property List. This window is hidden when the display is off. Now IMGScanOCXService() searches all O/i registered child windows belonging to the handle passed to that function, and if its window class equals "Hidden Scanner Window", then that property list is updated to stop the scan. Files changed: twainif.c Modules: oissq400.dll ============================================================================= 10/5/95 Roland (no bug yet, more preventative stuff) The last assembler routine in the code, PlaneToColor(), has now been rewritten in "C". This routine takes bits from 2-4 PCX/DCX "planes" and combines them into Red//Green/Blue/Intensity nibbles for subsequent processing. I didn't check to see how much longer it takes to execute this stuff in "C", but given its bitwise-intensity, my guess is that it's significant, even with the 1K translation table that I've built in for efficiency. Also note that I was able to test only 4-plane files, since I was unable to find any 3-plane or 2-plane ones, assuming that any actually exist in the real world. Files changed: \filing\fiopcx.c Modules: oifil400.dll ============================================================================= ................................................... ...........................................BUILDING oiwh/d10061 ................................................... ============================================================================= 10/6/95 Roland Bug #4816 (P2) Due to assumptions in the DecompressImage() routine about Packbits being supported only for black & white images, we were unable to read a color (RGB24) Packbits image that could be read with Cabinet/IDK. This has been corrected, so we can now read such images correctly. Note, however, that we are NOT supporting output of non-B&W Packbits images at this time, partially because I haven't been able to figure out what to do to tweak the "LTR" compress flag logic to get both B&W and non-B&W to work correctly, and partially because QA doesn't need another format to test. Also note that the WangImg application/OCX's don't support it either, so we're consistent. If we ever manage to clean up this code someday, maybe we can support it, but don't hold your breath. Files changed: \filing\ccitt.c, privdisp.h Modules: oidis400.dll (this is same fix as made for bug #4839 on 10/4/95) ============================================================================= ................................................... ...........................................BUILDING oiwh/d10062d ========================================================================== 6 October 95 John Clark Module: filing File: fiodata.h Bug #4864 (P1) Changes max buffer size from 31k to 32k to accomodate AWD. ============================================================================= 10/6/95 Roland Bug #4680 (P1) Something strange is happening in the JPEG code ... there's a #define of a type called "UINT8" which, you'd expect, would end up being an unsigned char, but which is instead ending up as some sort of 16-bit data type, probably an unsigned short. This is all fine and dandy except in a routine that takes a byte count and proceeds to use it to move UINT8 values from one place to another (oops!), which is what was happening. The routine in question, MEMCOPY1(), has been fixed to cast both pointer arguments from UINT8 to "unsigned int", but we need to look at this a bit more, if only to determine why UINT8 is being defined the way it is, and also to make sure there are no other nasty side-effects occurring. The problem is apparently related to a conditional variable called "__STDC__", which is SUPPOSED to be defined by the compiler, but apparently isn't. Files changed: \jpeg2\jrdjfif.c Modules: jpeg2x32.dll ============================================================================= 10/06/95 Rob Roy Module: oidis400.dll Reason: Fix for bug #4877 Files: privprt.c Fixed memory leak. Pointer to DIB returned by IPtoDIB was not being freed. ============================================================================= ................................................... ...........................................BUILDING oiwh/d10071d ................................................... ...........................................BUILDING oiwh/d10081d ................................................... ...........................................BUILDING oiwh/d10091D ========================================================================== ========================================================================== 10/09/95 Bob Gibeley Ref: Bug #4573 This fix closes bug #4573 against the SCAN OCX! Must init a the ImgParms structure prior to calling IMGSetParmsCGBW! The first page of a scan may have repaint problems if this is not inited to 0. Any subsequent scan will clear the problem, however. This fix is in MEMORY.C and NATIVE.C of OITWA400.DLL. Files changed: MEMORY.C NATIVE.C Modules: OITWA400.DLL ============================================================================= ................................................... ...........................................BUILDING oiwh/d10092d -------------------------------------------------------------------------------- 10/9/95 Rudy Bug # 4893 When exiting an app windows sends a render_all_format message. We were putting the clipboard data on the clipboard before this message because a clearwindow causes the window and image data to go away, where we store our clipboard info. So the fix is not to error out when the app exits with the window message, because the data is already on the clipboard and we have nothing more to do. Files: clear.c, copy.c in oidis400 -------------------------------------------------------------------------------- 10/09/95 Kendra Kratkiewicz MODULE: LIBGFS (oigfs400.dll) FILES: gfsclose.c, gfscreat.c, gfsgeti.c, gfsgtdat.c, gfsopen.c, gfsopts.c, gfsputi.c Added performance logging code with conditional compilation. ============================================================================== ................................................... ...........................................BUILDING oiwh/d10101d ========================================================================== 9510.10 Captain Russo reporting... fixes bug 4680 MODULE: jpeg1 FILES: jcdeflts.c removed the MEMCOPY1 function and replaced with the memcpy function ...Russo out. ========================================================================== 9510.10 Captain Russo reporting...deja-vu all over again! fixes bug 4680 MODULE: jpeg2 FILES: jrdjfif.c removed the MEMCOPY1 function and replaced with the memcpy function ...Russo out. ========================================================================== 10/10/95 Rudy Bug # 4848 When paste errored out, it was leaving the uncommitted paste mark behind. Cleaned it up. File: startop.c in oidis400 ------------------------------------------------------------------------------- 10/10/95 Kendra Kratkiewicz FILES: awview32.lib, awview32.dll, awdenc32.lib, awdenc32.dll Checked in new versions from Microsoft. ============================================================================= 10/10/95 Roland Bug #4864 (P1) Bug #4930 (P2) Bug #4864 was (we thought) corrected a few days ago by John's change of the MAXBUFFERSIZE32 value from 31K to 32K. Unfortunately, use of the 32K value had repercussions elsewhere in the code. Specifically, bug #4930 reflected a problem in the WriteBMP() routine in which the 32K signed short value was sign-extended to a long value to pass to wgfswrite(), resulting in great grief all around. Rather than risk other potential problems elsewhere, I decided to simply restore the 31K MAXBUFFERSIZE32 value and to redo the original fix targeted to AWD processing only. Specifically, I modified the IMGFileConvertPage() routine to check for the AWD bandsize value being less than MAXBUFSIZE and, if so, to use it anyway (the original problem was that we ended up using the max 31K buffer size even though the band size of the particular AWD file was actually larger than 31K). So the original problem is once again corrected and the new problem goes away. Files changed: \filing\fiodata.h, fiocvt.c Modules: oifil400.dll ============================================================================= ................................................... ...........................................BUILDING oiwh/d10111d ============================================================================= 10-11-95 Brian Display: ccitt.c Bug #4910 Fixed G31D writing. It was adding ending EOLs when not asked to. ============================================================================= ................................................... ...........................................BUILDING oiwh/d10121d ................................................... ...........................................BUILDING oiwh/d10122d ============================================================================= 10-12-95 Brian Display: assoc.c libmain.c cache.c privdisp.h Bug #4707 - Fixed deleting of brushes. ============================================================================= 10/12/95 Rudy Bug # 4949 Fixed image mark showing up as black when scale to gray is turned on. The mark was being converted to type b&w but was fed into a gray8 buffer leading to that result. Now it is correctly converted to type gray8. Files: copy.c, anbitmap.c, privdisp.h in oidis400 ============================================================================= 10-12-95 Brian Display: convert.c Bug #4946 - Fixed conversion from RGB24/BGR24 to B+W. ============================================================================= 10/12/95 Roland Bug #4940 (P1) This problem was caused by another inconsistency (bug? Microsoft Standard?) in the way that AWD information is computed, and it's certainly a mystery to us. In this case, it's the "band size" value, which for the converted BW.BMP file in question should have been 0x5310, the total byte count in the resulting AWD image, but was in fact 0x5320. When we attempted to use the 0x5320 value to read the image back in, we assumed that the bandsize would at least match the size of the first (in this case, only) band of data. This assumption resulted in a later piece of data-length validation code detecting the incorrect length and reporting an error. We now no longer make any assumption about the first band of data matching bandsize and things seem fine. What I don't understand is why we haven't seen this more often, but without knowing what triggers the bad value in AWD-land, anything's possible. Files changed: \filing\fioread1.c Modules: oifil400.dll ============================================================================= 10/13/95 Rudy Bug # 4969 Updated the ulinesread field in the image structure after the resolution of the image has been altered (as it alters the image dimensions). When not using cache as in writing straight to the display, this was writing bad image data based on the bad height. Files: convert.c in oidis400 ============================================================================= 10/13/95 Rob Roy Modules: oidis400.dll oiprt400.dll Reason: Fix for bug #4835 Files: display\privdisp.h display\annot.c display\anbitmap.c display\copy.c display\privprt.c display\repaint.c display\startop.c include\engdisp.h include\oidisp.h print\prtpage.c Use StretchDIBits() instead of Rectangle() for non-highlighted filled rectangles (only when printing). Work around for printer drivers (HPLJ4 drivers) that ignore SetROP2() drawing mode. ============================================================================= 10/13/95 Roland Bug #4940 (P1), sort of (no bug report on the REAL problem) In true "No Good Deed Shall Go Unpunished" style, my previous update exposed a problem with the change made on 9/2/95 to pre-read AWD files in order to get around Yet Another Microsoft Problem, this one being the one in which they return the wrong image height. In that change (in IMGFileConvertPage), after opening the file, we read it in order to get all the records, then closed and reopened it. Unfortunately, I neglected to add another call to IMGFileGetInfo() which, it turns out, fills in several fields in the internal "pdata" structure which, of course, has absolutely nothing to do with the IMGFileGetInfo() call, but tell that to the people who initially designed (and I use that term loosely) this filing system. Anyway, the important effect of this was that the "bytes_left" field never got filled in, and when combined with my previous change (above), which used the bytes_left field in order to validate the "bandsize" value returned by the AWD routines, caused everything to go down the tubes. It's actually interesting that this didn't cause problems back when we made the initial (9/2) change, since the bytes_left field was consistently either 0 or huge negative garbage, which apparently the rest of the code simply doesn't take very seriously. I've added the required additional call to IMGFileGetInfo(), causing everything to get filled in properly, so the above "bandsize" fix now works as advertised. Files changed: \filing\fiocvt.c Modules: oifil400.dll ============================================================================= 10-16-95 Brian Display: antext.c Bug #5006 Fixed text scaling when converting to non-matched resolutions. ============================================================================= 10/16/95 Jennifer Wu OIUI400.DLL ui\attrbox.c Fixed the line width didn't show properly if it is greater than 100 in the line attribute dialog box. ============================================================================= 9510.18 Captain Russo reporting...time flies when your having fun! FIXES 4156 P1 (really!) MODULE: display FILES: antext.c finally, the solution to ALL of the wordwrap problems in multibyte, fixed WithinWordBreak and OurOwnDrawText ...Russo out. ========================================================================== 10/18/95 Jennifer Wu P1 5001 OIUI400.DLL ui\attrbox.c Fixed the delete last second rubber stamp cause the system hang problem in the rubber stamp dialog box. ui\attrbox.c oiui400.rc resource.h Fixed bug about after delete all stamps, create new text stamp cause system hang. ========================================================================== 18 October 95 John Clark Module: gfs File: gfsawd.cpp (what else?) Was using a potentially invalid (too long) uniqueifier when generating the temp file names necessary for doing awd write. We now chop it off at 4 characters. =========================================================================== 10/18/95 Rudy Changed image marks to not be scaled to gray if they arent b&w. Only if the mark is b&w and the base image is scaled to gray will the mark also be scaled to gray. anbitmap.c in oidis400 ============================================================================= 10/19/95 Roland (coded) Joe R. (reviewed) Bug #5060 (P2) We have removed the "kludge" logic that was added to the BMPInfo() routine to recompute the image width of an incoming BMP file, the assumption being that the image width could have been incorrectly computed in pre-3.7.2 versions of Cabinet/IDK. We have had to remove this logic because one of the two values (image size) used to recompute the width is itself incorrect in (apparently) lots of images created by other software, and since other image viewers have no problem with them, i.e., they ignore the image size field, we must do the same. Files changed: \libgfs\gifinfo.c Modules: oigfs400.dll ============================================================================= 10-19-95 Brian (Rudy) Display: repaint.c Changed selection rect drawing to be small dashes instead of solid lines. ============================================================================= 10/20/95 Rudy The lpimage->ufiletype field was being zeroed out during certain cachereads, causing problems for the OCX trying to figure out the image type displayed. Took out that code, which was redundant to begin with. Files: cache.c in oidis400 ============================================================================= 10-20-95 Brian (Rudy) Display: ccitt.c Bug #5076 Change compression code to allow for an entire image of absolute worst case compression (compressed image is 6 times larger than uncompressed image). ============================================================================= 10/20/95 Rudy Changes search for memory blocks during reallocs and freemems from sequential to binary search. This should speed up mark operations. Files: annot.c in oidis400 ------------------------------------------------------------------------------- 20 October 95 John Clark Module: filing Files: fiodelet.c fiowrite.c fioread.c fiowrcls.c fiordopn.c fiorenam.c fioinfo.c Module: gfs Files: gfswrite.c gfsread.c gfsxtrct.c gfsdelet.c gfsclose.c gfsawd.cpp Included code to log timestamps (yet again) at entry and exit from various routines. The code is all conditionally compiled: #ifdef OI_PERFORM_LOG. Once the appropriate header, link lib, dll from Mark D. are checked into source control somewhere, the makefiles for filing and gfs will need modification to make it possible to compile and link in the logging stuff. ============================================================================= 10/20/95 Roland (coded) Heidi G. (reviewed) In our attempt to decrease DLL load time, I've removed a function from the OICOM400 (oicomex) dll, GetCompRowsPerStrip(), which the Display stuff calls statically and which is not JPEG-specific. The function has been moved to the Filing dll, leaving oicomex to be loaded dynamically by the Filing dll only for JPEG files. In order to effect this change, I had to move some internal constants from comex.h and oicomex.c to oicomex.h, as well as move the GetCompRowsPerStrip() prototype from oicomex.h to engfile.h for Display. Files changed: \include\oicomex.h, engfile.h \filing\fiostrip.c, oifil400.def \display\makefile, privdisp.h \oicomex\comex.h, oicomex.c, oicom400.def Modules: oifil400.dll, oidis400.dll, oicom400.dll ============================================================================= ========================================================================== All entries should include: date name reviewer defect# name of affected APIs dlls modules description of the change how to verify the fix ========================================================================== ========================================================================== 10-20-95 Brian (Rudy) Defect#: ???? (This came to me via John Clark.) Reason: Although the fax viewer only allows scale factors of 1-100% and will truncate anything over 100% to 100%, and our functionality was equivalent, we were asked to change this such that we save whatever the correct scale factor was. Api: IMGSavetoFIleEx Display: save.c Description: Took out scale limits for last viewed info. This is the runtime part of the fix. At the time there was still a problem somewhere else and John was looking into that. Verification: Using an app then can test the runtime with the app: Scale an image to something greater than 100%, call IMGSavetoFileEx with CHANGE_ONLY_MODIFIED, quit app, restart app, view the scaled image, it should scale correctly. ========================================================================== 10/23/95 Roland (coded) Joe R. (reviewed) Bug #5092 (P2) This bug referred to yet another BMP file with goofy stuff in it. In this case, the file in question (FISH.BMP) was a 24-bit BGR file that included a 256-entry palette for no obvious reason that we can think of. Too bad for us, since the logic in bmpinfo() computed a running offset to the image data based on the file and info header sizes and on the image type, the assumption being that for a BGR image, there is no palette and thus the image data immediately follows the header stuff. Another assumption bites the dust ... so now we use the "biOffBits" header field directly to point to the data, rather than attempting to compute the offset ourselves. Files changed: \libgfs\gifinfo.c Modules: oigfs400.dll ========================================================================== 10/24/95 Roland (coded) Rita (reviewed) Bug #5082 (P2) In the process of switching from WINCMPEX to the new compress/expand routines in oidis400, we removed restrictions on bits-per-line having to be below 64K, but I didn't think to change the ImageBitWidth field in the CXDATA structure from a WORD to a DWORD, the result of which was truncated image lines and a garbage image. I have made that change and saving of wide images now works OK. Unfortunately, we still have problems with running out of memory with images that are large both horizontally AND vertically. Given that our memory resources are not unlimited, and that we already use lots of memory for such images in both the filing and (especially) display DLLs, it's not clear how we can fix that part of the problem in the general case. Files changed: \filing\fiordopn.c \include\oicmp.h Modules: oifil400.dll (Note: I have not made corresponding fixes to W16CMPEX/W32CMPEX, since there doesn't seem to be any point to doing THAT any more) ============================================================================= 10/25/95 Rob Roy (reviewed by Rudy) Modules: oidis400.dll Reason: Additional fix for bug #4835 Files: privdisp.h annot.c antext.c Use StretchDIBits() instead of Rectangle() for the background of an ATTACH_A_NOTE annotation as is done for non-highlighted filled rectangles (only when printing). Work around for printer drivers (HPLJ4 drivers) that ignore SetROP2() drawing mode. ============================================================================= 10/25/95 Rudy (reviewed by Brian) Bug # 5057 Added bUpdateLastViewed field to the save structure. True means the last viewed info for awd files is written out to the newly saved file. Files: save.c, oidisp.h in oidis400 ------------------------------------------------------------------------------- ============================================================================= 10/26/95 Jennifer Wu (reviewed by Rob Roy) OIUI400.DLL ui\oiuicom.c P? ??? (bug system down) The "collate icon" shows again. It is disabled/enabled according to the collate ability of the selected printer driver. So far, we tried more than 10 printer drivers, all being disabled. With the same printer driver, the collate icon is enabled on MS Word, Excel, Power Point, disabled in Word Pad, Faxview. ========================================================================== 10/27/95 Roland (coded) Joe (reviewed) Microsoft-reported Bug #???? Yet another problem with AWD - in this case, we have a file that returns a vertical size value that is LESS than the actual number of lines returned, which causes illegal memory beyond the Display DLL's image buffer to be accessed, resulting in a crash. We are going on the assumption at this point that such an occurrence will not extend beyond the current AWD band, i.e., the reported number of lines lies within the actual number of bands, but may be less than the actual line count. Based on this assumption, the GetGFSInfo() routine has been modified to round the returned line count value upward to fill the current band, so the Display buffer will be allocated accordingly. Note that there is no problem (other than wasted memory) with returning a larger line count than actually exists in the file, since both Filing and Display code are equipped to handle that case. Files changed: \libgfs\gfsawd.cpp Modules: oigfs400.dll ============================================================================= 9510.27 Captain Russo reporting... MODULE: libgfs FILES: gifinfo.c added the function CheckForThumb to the jfifinfo routine. This is for reading JPG files, the new function will check for the presence of a thumbnail image in the JFIF file, and skip it, then fix up the jpeg header for the jpeg dll to expand properly! This fixes the issue with the "famous" bad.jpg! ...Russo out. ============================================================================= 10/30/95 Rob Roy Modules: oiprt400.dll Reason: Fix for bug #5188 Files: prtpage.c Removed printer banding because HP printers output a blank page with 75 and 150 dpi settings when banding is used and its only still supported by Windows for backward compatibility. ============================================================================= 1 November 1995 Module: gfs File: gfsawd.cpp Changed code to allow for maximum scaling value of 6500. Code was restricting awd files to no more than 100% ============================================================================= date: 11/01/95 name: Kendra Kratkiewicz reviewer: Roland Roy defect#: n/a name of affected APIs: n/a dlls: oigfs400.dll files: makefile description of the change: moved "gfsole.obj" to a separate line and put the variable directory prefix in front of it to match the others how to verify the fix: run the makefile to see if it still works ========================================================================== 11/2/95 Roland This update corresponds to a cleanup of the FILING source code to eliminate obsolete functions & such. Specifically, I've removed (not commented out, REMOVED!) all of the following obsolete 3.7 functions from the various associated source files: IMGFileWriteClose IMGFileReadClose IMGFileReadOpenCgbw IMGFileReadRaw IMGFileConvertCgbw PrivFileReadCgbw IMGFileRead IMGFileReadM IMGFileReadCloseM PrivFileReadCgbwM IMGFileInfoCgbwM IMGFileStopInputHandler IMGFileGetInfoCgbw IMGFileWriteOpenCgbw IMGFileGetInfoCgbwNA IMGFileWriteOpenCmpCgbw IMGFileWrite PrivFileWriteCgbw IMGFileWriteCmp I've also moved IMGFileStopInputHandlerM (used by FILING) and IMGFileReadRawM (used by DISPLAY) elsewhere, replacing the obsolete non-"M" versions, so that I was able to obsolete source files FIOREADM.C, FIOTERMM.C and FIOINFOM.C and remove them from the build entirely, as well as from the PRIVAPIS.H header (several of the "M" and "Priv" functions were there). In addition, PRIVAPIS.H has been removed from the FILING build and any local dependencies that FILING had in there have been moved to FILING.H. There are other filing function prototypes in PRIVAPIS.H that should be moved to the "standard" ENGFILE.H header, but I didn't do that this time around, since that will have an impact on several other DLLs. I also removed prototypes and exports for the various "IMGNet" and bindery functions and removed that file (NETPARSE.C) from the build, so the DLL is smaller now, but not by nearly as much as you'd think. Oh, well ... Files changed: \filing\oifil400.def, filing.h, makefile \filing\wgfscrea.c, wgfsopts.c, wgfsdele.c, wis.c \filing\fiocheck.c, fiocopy.c, fiocreat.c, fiodelet.c \filing\fiomain.c, fiorenam.c, fiosubs.c, fiolist.c \filing\file_io.c, fiowrcls.c, fiordopn.c, fiocvt.c \filing\fioread.c, fioterm.c, fioinfo.c, fiowrite.c \filing\fiotmpnm.c, fioparse.c \include\privapis.h, oifile.h, wgfs.h Files obsoleted: \filing\fioinfom.c, fiotermm.c, fioreadm.c Modules: oifil400.dll ============================================================================= November 2, 1995 - H Goddard \oicomex\oicomex.c \oicomex\oicmain.c In our never ending struggle to improve performance... \oicomex.c Removed IMGGetTaskData ( which was being used for static storage of data) and replaced it with Thread Local Storage. \oicmain.c Set up for Thread Local Storage in DLLMAIN. ============================================================================= 11/2/95 Rudy (Reviewed by Brian) Bug #5222 The last scale info written into awd files now accounts for image data that is saved scaled, so that when it is redisplayed it will look the same size as prior to the save. (i.e, image displayed at 100%, saved as scaled to 50% will set scale info to 200% to show up at same size as before). File : save.c in oidis400 ------------------------------------------------------------------------------- November 3, 1995 - Heidi oicomex\oicomex.c - removed unneeded variable hOiComexData ============================================================================= 11-3-95 Brian Display: startop.c makefile Added optimization back into display. ============================================================================= ................................................... ...........................................BUILDING oiwh/d20015 -------------------------------------------------------------------------------- 11/6/95 Rudy Fixed a divide by zero error in save when bscale was set. The scale factor passed in was a constant, 0, which means fullsize. This value was never converted to its actual scale value of 1000 till after the operation leading to the error. Moved the conversion code above the operation. File: save.c in oidis400 ========================================================================== date: 11/06/95 name: Kendra Kratkiewicz reviewer: Roland Roy defect#: speed improvements name of affected APIs: IMGFileWriteData specifically, others in general dlls: OIFIL400.DLL, OIGFS400.DLL files: fiowrite.c, makefile (for filing), makefile (for gfs) description of the change: Turned on optimizations for speed in the release versions. Compiler picked up one error in fiowrite.c in IMGFileWriteData, where a variable (status) was being checked before it had been set to any value. Removed the check, which wasn't necessary. how to verify the fix: The entire suite of tests should be run to verify that all filing and gfs functions still operate correctly. ========================================================================== date: 11/06/95 11/6/95 Roland (coded) Heidi G. (reviewed) I've replaced the klunky local copy logic in IMGFileCopyFile() with a single call to the new Windows 95 CopyFile() function. It doesn't appear to make any performance difference, as I had hoped it would (the fact that I can't get a 20-page Insert to consistently take the same amount of time doesn't help matters), but it at least makes the code cleaner and somewhat smaller. Files changed: \filing\fiocopy.c Modules: oifil400.dll ========================================================================== date: 11/06/95 ................................................... ...........................................BUILDING oiwh/d20016 ========================================================================== date: 11/06/95 11/7/95 Jennifer Wu, Dick Sontage(reviewer) OIUI400.DLL ui\attrbox.c No bug number For VC++ 4.0. The Edit Ocx allocate memory can not free in the OI (delete stamp) The O/I allocate memory can not free in the Ocx(create stamp). Now Edit Ocx always allcate 32 stamps and O/i always copy the information back to the input structure. ========================================================================== date: 11/06/95 11/7/95 Rudy The archive bit of a saved file was not being cleared in savetofileex. This was showing up as bad saves in the app and the ocx, where sometimes it appeared as if annotation marks werent getting saved and sometimes it would error out during a save. File: save.c in display ========================================================================== date: 11/06/95 ................................................... ...........................................BUILDING oiwh/d20017 ========================================================================== date: 11/06/95 9511.08 Captain Russo reporting... MODULE: JPEGCOM JPEG1 JPEG2 FILES: all removed all calls to IMGGetTaskData method for dealing with Global Variables and replaced with Thread Local Storage method ...Russo out. ========================================================================== date: 11/06/95 11/8/95 Rudy Took out PAINT_MODE_SELECTED flag from display. This flag was used to draw selection handles around marks, but that functionality is now handled by the PaintHandles function. Also added drawing of a dotted rect around selected text marks to PaintHandles. This was previously happening in PaintAnnotationText for the PAINT_MODE_SELECTED case. This change should speed up image marks and non-committed paste marks by taking out a redundant paint of those marks. Files: annot.c, anbitmap.c, antext.c, privdisp.h in display ========================================================================== date: 11/06/95 ................................................... ...........................................BUILDING oiwh/d20018 ========================================================================== date: 11/06/95 11/9/95 Roland As reported elsewhere, the latest AWVIEW32.DLL is a real turkey, even compared to the other gobblers that we've received in the past. Specifically, it's returning short bands in mid-file for no obvious reason. Although there's no way this could be shipped to anyone, it did point out a problem with the current ReadAWD() logic, which is that we LOOP reading bands until we get the requested data count (BytesToRead). The problem with this is that, first of all, we have no control over the data count returned when ViewerGetBand() is called, at least subject to the alleged maximum "band_size" value. And secondly, because the aforementioned band size value turns out to be actually larger than an even multiple of the line size (by 16 bytes this week), again for no obvious reason that Microsoft will tell us, we can't even use this as a test limit to compare against the remaining BytesToRead value to make sure we don't overflow the caller's buffer. Consequently, I've concluded that the simplest and safest approach is to simply do a single ViewerGetBand() regardless of the count returned, and let the caller, i.e., Display or IMGFileConvertPage(), take care of issuing additional calls. Perhaps someday we'll receive an AWVIEW32 dll that actually returns correct values for such things as band size, vertical pixels, etc., so we can clean all this up. Files changed: \filing\fioread1.c Modules: oifil400.dll ========================================================================== date: 11/06/95 date: November 9, 1995 name: George Kavanagh reviewer: Brian LaGoy defect# name of affected APIs: all registry access APIs in OIADM400.DLL dlls: OIADM400.DLL modules: NOUI.C description of the change: Added RegCloseKey(hK1) to eliminate resource leak. how to verify the fix: Run bounds checker & see that there is no longer a resource leak in NOUI.C ========================================================================== date: 11/06/95 11-9-95 Brian (Rudy) Display: repaint.c Fixed 5266 - Shifting of data during scrolling of RGB24 image after scale. ========================================================================== date: 11/06/95 11/9/95 jennifer Wu OIUI400.DLL ui\attrbox.c No bug number Removed the previous fix for the memory allocate in the different dll. The actual bug is OCX unload library to release O/i memory. The Ocx will fix the problem. Sorry. put the fix back again. P3 5090 Stamp "FOO" and "foo" unable to select in the stamp list box. Fixed by only allow to create one stamp with case unsensitive. ========================================================================== date: 11/06/95 11/9/95 Rudy Fixed a one pixel line being drawn when auto scrolling by drawing an attach-a-note and dragging it outside the window. Also, when typed text was entered, it lead to a border being drawn all the way to the border of the image. This rect only flashed for an instant. There was a repaint which was coming in before the mark was completed leading to this problem. Stopped that repaint from happening. Files: antext.c, annot.c in display ============================================================================= 11/9/95 Roland I've removed the "hMultiProp" field, which we no longer use, from the FIO_INFO_CGBW structure and replaced it with an additional "reserved" field (so we're back up to 3). "hMultiProp" was used in the original multiple-input-file implementation, but was no longer needed once I deleted all the old no-longer-supported functions a week or so back. Files changed: \include\oifile.h Modules: none directly (FIO_INFO_CGBW field locations shifted) ============================================================================= ................................................... ...........................................BUILDING oiwh/d20019 ................................................... ============================================================================= 11/10/95 Roland Bug #5268 (P1) In my "cleanup" of 11/2/95, I had updated and tested, but had completely forgotten to checkout/in various changes to oicomex files that removed a bunch of "SEQFILE"-based routines, which we never call any more, along with a corresponding GetProcAddress() call to get the address of the (now obsolete) IMGFileReadRaw() function. Because that call was now failing due to the missing API, it caused reads of JPEG images to blow up, and I'm not sure exactly why (ask Joey). In any case, I've officially removed all the problem code and things appear to be working fine now, in addition to being a few bytes smaller. Files changed: \oicomex\oicomex.c, oicom400.def Modules: oicom400.dll ============================================================================= 11/10/95 Jennifer Wu P1 5209 OIUI400.DLL ui\attrbox.c OIDIS400.DLL display\antext.c Switch keyboardlayout in the text, text note and text stamp, changes the system language default. Fixed. ============================================================================= 11/10/95 Rudy Took out change in PaintAnnotations which lead to not drawing a mark if lpumarks was 0. This change caused a bad paint of the first mark when auto-scrolling. The fix will have to go in the text code (The original problem was a rect showing up when drawing text on the image). File: annot.c in display -------------------------------------------------------------------------------- 10 November 1995 John Clark Module: gfs File: gfsawd.cpp We had a problem when writing awd files, in that the microsoft dll doesn't seem to set the line count correctly when used to write a multi-page doc stream into an awd. Worked around this by writing only single page streams: where we used to write a single n-page stream, we'll now write n single page streams. Code reviewed by Kendra. -------------------------------------------------------------------------------- ................................................... ...........................................BUILDING version d20020 ................................................... ...........................................BUILDING version d20021 ----------------------------------------------------------------------------------- 11/13/95 Rudy Fixed a bad repaint of pasted data when it was dragged outside the app window to enable the image to auto-scroll. The offset for the move was not being computed correctly leading to bad gray rects being left behind. File: annot.c in display ------------------------------------------------------------------------------ ========================================================================== 11/13/95 Jennifer Wu, George Kavanagh(Reivewer) P1 ?? OIUI400.DLL ui\attrbox.c Stamp dialog box GPF after close it. Fixed. The makefile CFlag change from /MT to /MD cause the memeory allocated by malloc didn't get initialize to '/0'. P1 5296 OIUI400.DLL ui\oiuicom.c P1 5296 In print option dialog box, the print format is hard code to the Engish version. Fixed. ========================================================================== ................................................... ...........................................BUILDING version d20022 ============================================================================= 11/14/95 Roland This is an attempt to make things consistent for the "monster" build, which combines FILING, DISPLAY, ADMIN and LIBGFS. The two easily-corrected problems addressed here are (1) duplicate "lstrncmp()" functions in FILING and LIBGFS, and (2) duplicate delay_on_retry functions in FILING and LIBGFS. The first problem has been corrected by removing the LIBGFS version of lstrncmp() and replacing the (single) call to it in LIBGFS with a dynamic call to the FILING version of the routine. The second problem was corrected by simply renaming the delay_on_conflict() routine in LIBGFS to pause_on_conflict(), which was easier than trying to pull everything into FILING. Files changed: \libgfs\tmpnam.c, tmpdir.c, lstring.c, gfsopen.c, makefile Modules: oigfs400.dll ============================================================================= ................................................... ...........................................BUILDING version d20023 ============================================================================= 11/15/95 Roland Bug #5307 (P1) The application was unable to successfully reopen (from MRU list) image files whose names contain nonstandard characters (i.e. extended ASCII stuff), and the problem turned out to be caused by IMGFileAccessCheck(), which was still calling AnsiToOem() to translate these characters to DOS' character set. This was fine when IMGFileAccessCheck() ultimately ended up calling a DOS function to check file existence/access, but it now calls a Windows 95 function to do this, and the AnsiToOem() translation was confusing the issue rather badly and returning a "nonexist" error, which the MRU logic picked up on, unlike the common dialog logic, which let it go through so the Open eventually worked correctly. Don't ask why - I didn't bother tracking all that alleged logic down down. It seems to work now. Files changed: \filing\fiocheck.c Modules: oifil400.dll ============================================================================= 11/15/95 Jennifer Wu, P2 5313 In Create image stamp dialog box, the browse button didn't work. Fixed. OIUI400.DLL ui\attrbox.c ============================================================================= 11-15-95 Brian Display: repaint.c save.c copy.c Fixed part of painting of blank page (more to come). Fixed resolution saving. Fixed 5266 scrolling image data left. ============================================================================= 11/15/95 Rudy When the resolution on an image was converted to a lower resolution, the text marks on the image almost became invisible. This was due to a faulty computation of the text mark height as 0 any time the above happened. File: antext.c in display ------------------------------------------------------------------------------- ============================================================================ 11/15/95 Bob Gibeley Ref: Bug #5314, 5322 P2 and P1 In IMGTwainOpenDSM() of OPEN.C, a pTWAIN_SUPPORT data structure is created and added to the scanner property list the first time in. If the DSM cannot be opened, then the second time in, in an error condition block, this data structure is accessed. However, it had not been locked and an exception occurs. We must lock it first, in this error condition block. This closes out bug #5314, and also 5322, which is a duplicate. Files changed: open.c Modules: oitwa400.dll ============================================================================= 11/15/95 Roland Bug #5289 (P1) This appears to be a problem with using '/' instead of '\' characters as node separators in fully qualified file names passed to the NT server. What's odd about it is that the problem appears to occur only with certain functions (in this case, MoveFile()) and only AFTER opening a file from the Common Dialog. Prior to accessing the Common Dialog, opening files via the Most Recently Used menu picks works fine, but as soon as a file is accessed via the Common Dialog, all further attempts to save modified NT images fail, regardless of whether Common Dialog or MRU is used to open them, and the failure always occurs in MoveFile() even though the namestrings being passed to it are IDENTICAL to those used in successful calls prior to the Common Dialog access. Very Strange. The logic (in FioRename, FioMkDir and FioRmDir) that translates '\' to '/' was intended for UNIX servers, which can't handle backslashes; for the time being, I've commented out that logic so that things work correctly. Obviously, if UNIX servers are once again supported, we'll need to do things a bit differently. Files changed: \filing\fiotmpnm.c Modules: oifil400.dll ============================================================================= ................................................... ...........................................BUILDING version d20024 ................................................... ...........................................BUILDING version d20024 ................................................... ...........................................BUILDING oiwh/p10125 ................................................... ...........................................BUILDING oiwh/p10125 ------------------------------------------------------------------------------- 11/16/95 Rudy When a file save as was done, the archive bit on the original file was being cleared. Reopening this file, if it remained in cache, led to an appearance as if the original had also changed. Now the archive bit is not touched unless the image displayed is saved onto itself. File: save.c in display ============================================================================= 11/16/95 Roland Bug #5329 (P1) This is a follow-up on yesterday's fix of bug #5307. It turns out that IMGFileAccessCheck() wasn't the only place where no-longer-valid AnsiToOem() calls were being made - functions IMGFileCreateDir(), IMGFileRemoveDir(), IMGFileListDirNames() and, most importantly, IMGFileRenameFile() were also making calls to AnsiToOem(), resulting in messed-up namestrings when using nonstandard ANSI characters. IMGFileRenameFile() would kick in whenever an append/insert/overwrite page function would close and switch its temporary file. The odd thing about all this is that two of the functions, CreateDir() and RemoveDir(), are still using DOS (C-runtime) functions, which, according to the documention, use the OEM character set. Apparently not in Windows 95. Also note that ListDirNames() was using OemToAnsi() calls as well as AnsiToOem(), so I've removed those, too, the result being that there are now NO CALLS to either of these functions remaining anywhere in the runtime code. Files changed: \filing\fiorenam.c, fiocreat.c, fiodelet.c, fiolist.c Modules: oifil400.dll ============================================================================= 11/18/95 Rudy Fixed a scale to gray problem where random data was showing up. An image width calculation was incorrect leading to the problem File: scalebit.c in display ------------------------------------------------------------------------------- 11-19-95 Brian Display: core Fixed 5370. Garbage during BW scale to gray. ============================================================================= ========================================================================== date: 11/06/95 9511.20 Captain Russo reporting... MODULE: display FILES: antext.c fixed rect computation bug for re-edit of anno text ...Russo out. ========================================================================== date: 11/06/95 11/21/95 Rudy Fixed problem with awd files with vertical resolution greater than horizontal resolution, where if the scale was changed it saved a bad scale in the file. We were always saving the horiz. scale factor which lead to this problem. Now the scale associated with the larger resolution is saved. Files: getparm.c, privdisp.h, cache.c, libmain.c, save.c in display Also, put in a check for gray7 image types in the CheckPalette routine. Otherwise, for these images it was defaulting to 8 bit custom palette causing depalettize (performance) problems with scale to gray8. File: repaint.c in display ------------------------------------------------------------------------------- 11/21/95 Goddard Bug # 5392 \libgfs\glibmain.c Free mutexes on detach process ------------------------------------------------------------------------------- ................................................... ...........................................BUILDING version d20025 ============================================================================ date: 11/21/95 name: Kavanagh reviewer: Pratt defect#: 5386 name of affected APIs: DllMain procedure dlls: OIADM400.DLL modules: admnmain.c description of the change: added CloseHandle() for WindowListAccessKey and RegistryAccessKey. how to verify the fix: Run bounds checker & see that there are no resource leaks from oiadm3400.dll ============================================================================== date: 11/21/95 name: Kavanagh reviewer: Pratt defect#: 5385 name of affected APIs: IMGDeRegWndw dlls: OIADM400.DLL modules: cepfrmat.c description of the change: rearranged how the WindowList is accessed so that it is properly protected by WaitForSingleObject. how to verify the fix: Closing Multi instances no longer causes crash, ============================================================================== date: 11/21/95 name: Kavanagh reviewer: LaGoy defect#: name of affected APIs: all dlls: all modules: all description of the change: changed compile switch "/MT" to "/MD" so that dynamic links to C runtime are used, rather than static links. "D" line builds now match "P" line builds in this respect. how to verify the fix: dynamic c runtime is now used. ============================================================================== 11/22/95 Jennifer Wu,George Kavanagh(reviewer) P2 5393 Fixed the resource leak. Now the bounds checker didn't show the resource leak in this module. OIUI400.DLL ui\libmain.c ============================================================================= 11/28/95 Rob Roy (reviewed by Miki) Modules: oiprt400.dll Reason: Fix for bug #3848 - MS bug #61 Files: prtexp.c Added code to build jobname string for passed in jobname. 'Print **** (3 pages)' where **** is the jobname ============================================================================= 11/28/95 - Heidi Goddard Fix of bug 5389 - P2 \filing\fiomain.c In DLLMain - added code to free File Descriptor Table in PROCESS_DETACH. Also moved the allocation of the File Descriptor Table into PROCESS_ATTACH. ============================================================================= ============================================================================== 11/28/95 Jennifer Wu,George Kavanagh(reviewer) P2 5450 Fixed the resource leak in stamp dialog box. OIUI400.DLL ui\attrbox.c ui.h =============================================================================  ................................................... ...........................................BUILDING version d20026 --------------------------------------------------------------------------------- date: 11/29/95 name: Kendra Kratkiewicz reviewer: Joe Russo defect#: 5454 name of affected APIs: those that would result in deleting or writing pages in an AWD file dlls: oigfs400.dll files: gfsawd.cpp description of the change: Fix for bug #5454: Down in the depths of the code that rewrites AWD files lives a routine called FileToStream. This routine was allocating a 32,000 byte buffer that wasn't being freed (not that it didn't try). It called wfree, but instead of passing the memory pointer, it passed the address of the pointer, so the wfree routine couldn't find it in the list of pointers it keeps. All I had to do to fix this was to remove the "&" in front of the pointer name. how to verify the fix: Verify that Bounds Checker no longer reports this memory as not being freed. =============================================================================== ................................................... ...........................................BUILDING version d20027 ................................................... ...........................................BUILDING version d2002 ................................................... ...........................................BUILDING version d20028 ============================================================================= 12/1/95 Rob Roy (reviewed by George) Modules: oiprt400.dll Reason: Fix for bug #5479 Files: prtdllmn.c prttbl.c This bug was actually 2 separate problems. In prtdllmn.c, added CloseHandle of mutex handle in DLL_PROCESS_DETACH case in DllMain function to release this resource. In prttbl.c, skipped ReleaseMutex call if mutex was not ever waited for and therefore not owned by the thread. ============================================================================= 1 December 1995 John Clark Module: gfs File: gfsawd.cpp (of course) Put back the old code for ExtractandPutBack routine. The newer code, that writes a doc stream for every page, results in a file that takes significantly longer to open, since we open every doc with the viewer at file open time. Also, fixed bug #5481, a memory leak in AWDInsertPage. ============================================================================= 1 December 1995 John Clark Module: 3rdparty File: awdenc32.dll Checked in the latest (11/16/95) version from Microsoft. ============================================================================= ................................................... ...........................................BUILDING version d20029 ============================================================================= December 4, 1995 - HJ GODDARD Fix of bug 5453 \filing\fiowrite.c - fixed meory leak caused by reallocating the space for pdata->hfile_name. In some cases hfile_name has already been allocated by a call to fio_allocate_data. Check to see if the memory is already there, and if it is, reuse it, before attempting to allocate the space. attempting to allocate the space. ------------------------------------------------------------------------------- 12/4/95 Rudy Changed check in startoperation to ensure point passed in is on the image to check for the left and top of the point rect, not the bottom and right. Bottom, right were rounded off to the higher int which sometimes caused the check to flag an error even if the point was on the border of the image. File: startop.c in display --------------------------------------------------------------------------------- ................................................... ...........................................BUILDING version d20030 ============================================================================= 12/5/95 Rob Roy (reviewed by Rita) Modules: oiprt400.dll Reason: Fix for bug #5446 Files: prttbl.c (# of lines 2) Risk Level: low Added code to OiPrtSetOpts to delete the printer DC in print table if one already exists and the caller is trying to set a new one. The code already deletes the printer DC in the print table for a process detach so no changes are necessary for that. ============================================================================= ................................................... ...........................................BUILDING version d20031 ===================================================================== date: 12/6/95 name: kavanagh reviewer: lagoy defect#: 5523 name of affected APIs: IMGRegWndw dlls: oiadm400.dll modules: initload.c lines: 2 added (1 is a comment) description of the change: added SetEvent() for WindowListAccessKey in the case when reg'd windows are maxed out. how to verify the fix: attempt to register more than 50 windows. note that processing no longer hangs waiting for the event. risk: LOW ===================================================================== 12-6-95 Brian Display: repaint.c assoc.c privdisp.h Fixed 5521 Indefinite repaint. ===================================================================== ................................................... ...........................................BUILDING version d20032 ................................................... ...........................................BUILDING version d20033 -------------------------------------------------------------------------------- 12/8/95 Rudy Stopped a color bitmap from being created when a bw image is being rendered. Although we end up with bw data, we were creating a color bitmap to put it in, which was hogging up a lot of memory. Now, check the image type and if it is bw, create the bitmap as bw. File: repaint.c in display (line 1335) ------------------------------------------------------------------------------ Line 1335 ................................................... ...........................................BUILDING version d20034 ................................................... ...........................................BUILDING version d20035 ................................................... ...........................................BUILDING version d20036 ========================================================================== 9512.13 Captain Russo reporting... MODULE: display FILES: antext.c privdisp.h oidis400.def MODULE: include FILES: oidisp.h modified the annotation text code to remove the user interface dialog box entry and allow for the API user to call to edit the annotation text strings. The dialog box code has been taken over at the OCX level. ...Russo out. ========================================================================== ................................................... ...........................................BUILDING version d20037 ................................................... ============================================================================= 12/14/95 Roland (There was a Microsoft-filed bug on this, but I don't know where it went) This update adds read-only support for compressed BMP files, which come in two flavors, 8-bit palettized and 4-bit palettized. The actual compression format can be found in the Windows 3.1 Programmer's Reference Volume 3 (Messages, Structures and Macros). Implementation is via a new "compression type" field (BmpCmp) in the gfsinfo structure, logic to check/set it in the GFS bmpinfo() routine, and a new filing routine, ReadBmpCmp(), called as an alternative to the ReadBmp() routine for compressed images. Testing was done by creating compressed BMP images via PaintShopPro, which, interestingly enough, cannot read its own compressed images, only write them! I was not able to test some parts of the compression format, namely, the "skip rows/cols" specification, which PaintShopPro doesn't generate. I hope to be able to find a real source for these files and test them out more fully at some point, but don't hold your breaths. Files changed: \filing\fioread1.c, fiosubs.c, filing.h \libgfs\gifinfo.c \include\gfs.h Modules: oifil400.dll, oigfs400.dll ============================================================================= ................................................... ...........................................BUILDING version d20038 ................................................... ============================================================================= 12/15/95 Roland Follow-up to yesterday's changes to support Compressed BMP files (RLE): There was a bug in the code (incrementing the wrong buffer pointer) which caused crashes or incorrect decompression of certain images which I discovered this morning in searching the network. I've fixed the bug, and at the same time added some optimizations when decompressing lines not requested by the caller (we have to do that because of the reverse line order in the BMP image data). I still haven't tested the "skip" specification yet, because I have yet to find any compressed images that use it. Maybe next year. Files changed: \filing\fioread1.c Modules: oifil400.dll ============================================================================= 12/18/95 Roland Discovered that Visual C++ also creates compressed BMP files, so I created a few more and found yet another problem - the masks I was using in processing odd numbers of 4-bit image nibbles were wrong. so those have been corrected. Unfortunately, I still can't get "skip" specifications to be generated, so I've given up on trying to get any of these tested, since it may well be that none actually exist. Thank You. Files changed: \filing\fioread1.c Modules: oifil400.dll ============================================================================= 12/19/25 - John Clark / Heidi Goddard Fixed Fuji Scan Partner 10 problem. \scanlib\open.c Changed prototype of IMGTwainGetDSNames to return an int, as the actual routine does. Also cast the return code from IMGTwainGetDSNames from a WORD to an int in the code which makes the call. ============================================================================= ................................................... ...........................................BUILDING version d20039 ============================================================================= 12/19/95 Rob Roy Modules: oiprt400.dll Reason: Some images not being printed at correct size. Files: prtpage.c (# of lines 2) Risk Level: low Removed code that changes image's dpi to 200 if greater than 600 when printing it at actual size. ============================================================================= 12/19/95 Roland Changed the default AWD scaling from 100% to 50% to match the OIWHB1 line. Files changed: \libgfs\gfsawd.cpp Modules: oigfs400.dll ============================================================================= ................................................... ...........................................BUILDING version d20040 ................................................... ...........................................BUILDING version d20041 ============================================================================ 12/22/95 Bob Gibeley Ref: Bug #? dc_scan.c -> S:\oiwh\scanlib\dc_scan.c_v Enter description of changes made. If the data source enable fails due to a cancel condition (or maybe other conditions?), we capture the error, do not go into transfer mode, but never bubble up the error to the app. Now I check the result from IMGTwainEnableDS() and if it is true (failure), I set the ret_stat to IMGSE_ABORT. This will cause the app to handle the error as a cancel condition and recover nicely. Before, if the enable failed, ret_stat would be zero (no error) and the app would think the transfer was completed. Since there was no data transfered, the Edit control does something to the app which puts it in read only mode, hence removing scan altogether from the app. Files changed: dc_scan.c Modules: oislb400.dll ============================================================================= ................................................... ...........................................BUILDING version d20042 ============================================================================= 01/02/96 - Heidi \include\dllnames.h added OIGFS400.DLL ============================================================================= ................................................... ...........................................BUILDING version d20043 ................................................... ...........................................BUILDING version d20044 ============================================================================= 12-xx-95 Brian display: Fixed 5624. This was fixed too long ago to know how or why. ============================================================================= 1-4-96 Brian display: all files Fixed 5440, 5449, 5459. Changed all UINTs to ints internally. Fixed several subsegment memory manager errors that were producing varying symptoms, usually eratic crashes, some of which would take down the OS. How these errors have gone undetected so far is beyond me. ============================================================================= 1-5-96 Brian display: startop.c Fixed 5661. All annotations that were created with build 44 are garbage. All files saved with build 44 should be deleted immediately if not sooner. All named blocks were not being added to the annotations, resulting in inoperable conditions. The symptoms will be differing and widespread. ============================================================================= ................................................... ...........................................BUILDING version d20045 ============================================================================= 1/9/96 Roland Bug #5639 (P2) Certain PCX files were causing us to blow up, and the cause was some missing logic in the ExpandPcxLine() function. Specifically, if a line ended precisely at the end of the current compressed-data buffer, the routine would not prefetch a new buffer (since there may not be any more data at that point), but it then forgot to check for the empty-buffer condition at the START of the next line, i.e., it pulled in the first compressed byte before verifying that there was one present! It then decremented the count, which was already 0 to begin with, checked it for 0 (which, of course, it wasn't any more), and went straight down the tubes from that point. All fixed (note: "D" line only!) Files changed: \filing\fiopcx.c Modules: oifil400.dll ============================================================================= ................................................... ...........................................BUILDING version d20046 ................................................... ...........................................BUILDING version d20047 ============================================================================= 1/11/96 John Clark Modules: gfs & filing Files modified: gfsawd.cpp, gfsole.cpp, gfct.h, fiocopy.c, oigfs400.def Made changes required to enable viewing of an inbox awd (more or less) directly via the storage pointer supplied to us by the inbox, rather than having to use the storage to create a temp file and then viewing from the temp file. ============================================================================= 1/11/95 Jennifer Wu Modules : Oiui400.dll File : oiui400.rc #4452 P3 Changes the file filter to match the format of Image95. ============================================================================= ................................................... ...........................................BUILDING version d20048 ============================================================================= 1/12/96 Roland Per requirements of the new object-based support being planned, I have removed the requirement of a window handle from IMGFileGetInfo() calls for unopened files (i.e. passing the file namestring, not the FileID value). The way this has been implemented is via a hidden window created the first time IMGFileGetInfo() is called. If this or subsequent calls are made with a NULL hWnd argument, the hidden window is used to process the request. This eliminates the need to change all of the underlying filing layers, not that we shouldn't do that at some point anyway. Files changed: \filing\fiomain.c, fioinfo.c, abridge.h Modules: oifil400.dll ============================================================================= 1/12/96 jennifer Wu Modules : Oiui400.dll File : oiui400.rc P3 4737 Changed the caption "Highlight Rectange Property" to "Highlighter Property". ============================================================================= ................................................... ...........................................BUILDING version d20049 ------------------------------------------------------------------------------- 1/15/96 Rudy Fixed the selection box structure from being zeroed out in IMGCloseDisplay. This was pulling down the selection rect from all windows displaying the same image, even though only one of them was being destroyed. Files: clear.c in oidis400.dll ------------------------------------------------------------------------------ ................................................... ...........................................BUILDING version d20050 ---------------------------------------------------------------------------------- 1/16/96 Rudy The display rect in the display structure was being assigned values even if the display buffer had been thrown away due to the display changing (as in converting the image type). This lead to a problem with the display turning black when a bw image was converted to rgb24 (for the initial display). Stopped this from happening by checking to make sure display buffer is available before assigning values to the display rect File: repaint.c in oidis400.dll ------------------------------------------------------------------------------- ................................................... ...........................................BUILDING version d20051 ------------------------------------------------------------------------------ 1/17/96 Rudy PaintAnnotationBitmap was referencing an invalid value in the image structure, causing a GPF. Fixed it to look for pimage->nrwdata versus pimage->pimg->ntype, because pimage->pimg might not exist in certain cases. File: anbitmap.c in oidis400 Stopped attach-a-notes from being deleted if their width and height are 0. This was causing problems for the imgedit ocx which assumed the mark to be there, no matter what its dimensions. File: antext.c in oidis400 Fixed the repaint rect in imgrepaintdisplay from going negative in certain situations which was eventually causing a GPF. File: repaint.c in oidis400 -------------------------------------------------------------------------------- 1/18/96 jennifer Wu Modules : Oiui400.dll File : oiui400.rc P3 4737 Changed the caption "Highlight Rectange Color Property" to "Highlighter Color Property" in the palette dialog box. -------------------------------------------------------------------------------- ................................................... ...........................................BUILDING version d20052 ============================================================================= 1/19/96 Roland Bug #5685 (P1) The FILING dll was not, except in a couple of isolated places, freeing up the oicom400.dll module before exiting, since we never bothered saving "loaded" status or module handle. We now save the module handle in a global variable and check it whenever we need to use the dll. If loaded, as indicated by a non-NULL handle variable, we free it up in the oifil400 exit routine in DllMain() - PROCESS_DETACH. Note: I verified with the debugger that the oicom400.dll module is now being successfully freed at exit time, but since I cannot run Sue Cox's VB script, she will recheck this problem with the next build (D20053). Files changed: \filing\fiomain.c, fiostrip.c, fiosubs.c \filing\fiowrite.c, fiotiff.c Modules: oifil400.dll ============================================================================= 1/19/96 Rudy Fixed the print problem where non-bw images were coming out some solid dark color. The brightness and contrast values for the window passed into display were not being set (defaulted to 0) which lead to the dark (incorrect) printout. Added setparms to set those values in print (to 1000) before it calls display. Files: prtexp.c in oiprt400, setparm.c in oidis400 Fixed a vb crash which happened because the filing and display dlls were not getting unloaded. Oicomex was statically linking to display which in turn links to filing. The circle becomes complete because filing loads oicomex, and consequently their reference counts were such that they were never getting unloaded unless the app went away (which clears out dlls no matter what their count). Fixed problem by making oicomex dynamically load display. Files: oicomex.c, oicmain.c, makefile in oicom400.dll ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ................................................... ...........................................BUILDING version d20053 ................................................... ...........................................BUILDING version d20054 ................................................... ============================================================================= 1/23/96 Roland Bug #5716 (P2) (Thelma) Bug #5718 (P1) (Larry) A problem was introduced when I changed the IMGFileCopyFile() routine to use Windows 95's CopyFile() function, namely, it copies all the file attributes as well as the file data, which creates a problem if the original file was readonly. I've corrected this by simply following the CopyFile() call with a call to SetFileAttributes() to clear the readonly flag (as well as any other extraneous stuff). Note: This does NOT fix bug #5699 (Eileen), despite my hopes that it would. I'm still working on that one, which involves VB and other unpleasant things. It does correct the problem that both Larry R. and Thelma encountered doing a simple Open of a multipage readonly file and attempting to Save As to another location. Files changed: \filing\fiocopy.c Modules: oifil400.dll ============================================================================= 1-23-96 Brian Fixed an undo problem that was causing a crash. Added Crop functionality. Fixed brightness and contrast. Fixed a resource leak. Display Files: undo.c, privdisp.h, setparms.c, convert.c libmain.c Include files: oidisp.h ============================================================================= ................................................... ...........................................BUILDING version d20055 ................................................... ...........................................BUILDING version d20056 ============================================================================= 1/25/96 Jennifer Wu Module : oiui400.dll File : oiui400.rc P5605 P3 Switched the position of the edit box and spin box in the annotation line attribute dialog box. ============================================================================= ................................................... ...........................................BUILDING version d20057 ................................................... ...........................................BUILDING version d20058 ................................................... ...........................................BUILDING version d20059 ============================================================================= 01/30/96 - Heidi Goddard Added XIF support to include files \oiwh\include gfstypes.h added #define for GFS_XIF oifile.h added #define for FIO_XIF =============================================================================\ 01/30/96 - HEIDI Added XIF support to FILING. Quirks with our XIF implementation: We support XIF in read mode only. XIF files must be read entirely in one read. Xif data lines are padded out to the nearest double word. All buffers for reading XIF data must be calculated with this in mind. Changes in FILING: fiordopn.c wis.c fiocvt.c fiocheck.c fioinfo.c fioread1.c Public Functions which were modified are: IMGFileAccessCheck IMGFileConvertPage IMGFileCopyFile IMGFileOpenForRead IMGFileGetInfo IMGFileReadData =============================================================================\ ................................................... ...........................................BUILDING version d20060 =============================================================================\ 01/31/96 - Heidi Goddard fix for bug 5790 in oiwh \filing\fiocheck.c Before calling IMGFileGetInfo, which we do to see if we have a XIF file, initialize the structures to 0. =============================================================================\ 1/31/96 Jennifer Wu Module: Oiui400.dll Files: attrbox.c P5771 P1 Delete stamp cause system hang. Fixed it =============================================================================\  ................................................... ...........................................BUILDING version d20061 =============================================================================\ 2/1/96 Jennifer Wu Module: oiui400.dll imgedit.ocx Files: ui.h attrbox.c oiattrib.c iemisc.cpp P5302 Removed read only check box from the file open dialog box. =============================================================================\ ................................................... ...........................................BUILDING version d20062 ................................................... ...........................................BUILDING version d20063 =============================================================================\ 2/5/96 Jennifer Wu Module: oiui400.dll File: oiattrib.c Added include file for the NT build. =============================================================================\ 2/5/96 - Heidi Goddard oifil400.mak - generate visual c++ makefile for NT oicom400.mak - generate visual c++ makefile for NT ============================================================================= 2/5/96 Roland Static dependencies on the oidis400 and oiadm400 DLL's in FILING have been eliminated with this update. OIADM400 dependencies consisted of a single call to GetImgWndw(), embedded within a call to IMGCacheUpdate(). I've removed the GetImgWndw() call, which is, I believe, no longer necessary. As for the OIDIS400 dependencies, I've defined intermediate local functions for the various DISPLAY routines (IMGSet/Get/RemoveProp(), IMGCacheUpdate() and [De]CompressImage()). The first time any of these functions is called, it will fetch the function addresses, via GetModuleHandle()/GetProcAddress(), and use them for the current call and all future calls. Files changed: \filing\fiomain.c, fiocvt.c, fiogif.c, fiopcx.c \filing\fiosubs.c, fioterm.c, fiocopy.c, fiodelet.c \filing\fiocheck.c, fiowrcls.c, fioinfo.c, fiordopn.c \filing\wis.c, wincmpex.c, fiowrite.c \filing\filing.h, makefile Modules: oifil400.dll ============================================================================= 5 February 1996 John Clark Module: gfs Files: gfsawd.cpp & gfsopen.c & gfsread.c & gfscreat.c & oigfs400.mak Put in WITH_AWD conditional compile code to take out AWD support for NT builds. RIP. ============================================================================= 2/5/96 Roland Because we will now be getting EFORMAT_NOTSUPPORTED errors for AWD files in NT-land, I've added checks in wgfsopen() and wgfscreat() for that return code, which will now be mapped to FIO_UNSUPPORTED_FILE_TYPE rather than to the generic "open error" codes that map by default. Files changed: \filing\wgfsopen.c, wgfscrea.c Modules: oifil400.dll ============================================================================= 2/5/96 Roland My previous dependency change in FILING (three entries back) has been changed so that we no longer assume that the ADMIN dll is present - an explicit LoadLibrary() and corresponding FreeLibrary() (at exit time) are done to ensure that everything is in a consistent state. Files changed: \filing\fiomain.c Modules: oifil400.dll ============================================================================= 2/5/96 Roland Static dependencies on the oidis400 and oiprt400 DLL's in ADMIN have been eliminated with this update. OIPRT400 dependencies were actually nonexistent (apparently the static link was left over from old stuff). As for the OIDIS400 dependencies, I've defined intermediate local functions for the various DISPLAY routines (IMGSet/Get/RemoveProp(), SeqfileInit/DeInit/DeReg() and IMGSetParmsCgbw()). The first time any of these functions is called, it will load the DLL and fetch the function addresses, via GetProcAddress(), and use them for the current call and all future calls. The DLL will be unloaded in ADMIN's exit routine. Files changed: \admin\makefile, pvadm.h, admnmain.c \admin\cepfrmat.c, initload.c, noui.c Modules: oiadm400.dll ============================================================================= ................................................... ...........................................BUILDING version d20064 ============================================================================= 02/06/96 - Heidi \FILING\FIOCHECK.C Changed IsIllegalXifAccess routine to check for ACCESS_WR combined with other flags as well as singularly. ============================================================================= ................................................... ...........................................BUILDING version d20065 ................................................... ...........................................BUILDING version d200066 ................................................... ...........................................BUILDING version d20066 ................................................... ...........................................BUILDING version d20067 ................................................... ...........................................BUILDING version d20068 ................................................... ...........................................BUILDING version d20069 ................................................... ...........................................BUILDING version d20070 ============================================================================= 02/15/96 - HEIDI \filing\fiordopn.c resumed LZW, but not GIF, support in Get_Compress_Flags ============================================================================= ................................................... ...........................................BUILDING version d20071 ................................................... ...........................................BUILDING version d20072 ................................................... ...........................................BUILDING version d20073 ................................................... ...........................................BUILDING version d20074 ----------------------------------------------------------------------------- 22 February 1996 John Clark Module: gfs File: gfsawd.h We had a #pragma pack(1) in there, without the #pragma pack (push) and #pragma pack (pop) surrounding it. gfsawd.h is included in gfct.h, so fct was not aligning correctly. I stuck in the push and pop stuff. ----------------------------------------------------------------------------- ................................................... ...........................................BUILDING version d20076 ----------------------------------------------------------------------------- 24 February 1996 John Clark Module: display File: ccitt.c The logic that was does the rounding up of buffer pointer to the nearest 4-byte boundary had a bug. I fixed it. ----------------------------------------------------------------------------- ................................................... ...........................................BUILDING version d20077 ----------------------------------------------------------------------------- 02/26/96 - Goddard \oiwh\filing\wis.c In OiIsSupportedFileType changed status from WORD to int, to avoid 32 bit port bugs. ----------------------------------------------------------------------------- 02/26/96 - Goddard oiwh\filing conditionally compiled XIF support in the following files: fiocheck.c fiocvt.c fioinfo.c fiordopn.c fioread1.c wis.c ----------------------------------------------------------------------------- date: 02/26/96 name: Kendra J. Kratkiewicz reviewer:none defect#:N/A name of affected APIs:gfsopen, gfsclose, gfsgeti, gfsread dlls: oigfs400.dll, xfilexr.dll (new from Xerox) files: gfcntl.c, gfsclose.c, gfsgeti.c, gfsopen.c, gfsread.c, gfsxif.c (new), glibmain.c, gfct.h, gfserrno.h, xfile.h (new from Xerox), oigfs400.mak description of the change: Added support for reading of XIF files. This code is only enabled for builds that define IN_PROG_GENERAL and IMG_WIN95. XIF is not supported on NT. how to verify the fix: For Win95 builds, we should recognize and display the XIF files in t:\users\rita\xif\files. These are XIF "version 2" files; we will not recognize earlier "obsolete" XIF versions, and none should exist elsewhere since no XIF writer has been released yet. For NT, we will not recognize XIF files as XIF. Trying to open one should produce the same result as before we added conditional XIF support, which is to say the XIF file will be recognized as a TIFF file, but only the black and white text portion, if any, of the image will be displayed. This is because XIF files are based on TIFF files, and the non-text portions of the image are stored in private TIFF tags. We should verify that we can still open and display normal TIFF and other file formats as in the past, with XIF both enabled and disabled. ---------------------------------------------------------------------------------- 26 February 1996 John Clark Module: display File: linetorl.c We were getting an addressing error on the MIPS klunker, because we were treating a pointer that wasn't 4-byte aligned as PLONG, i.e. as a pointer to LONG. Fixed it. ----------------------------------------------------------------------------- 26 February 1996 John Clark Fixed the previous fix to linetorl.c - it wasn't done correctly the 1st time. ----------------------------------------------------------------------------- ................................................... ...........................................BUILDING version d20078 ................................................... ...........................................BUILDING version d20079 ----------------------------------------------------------------------------- 2-28-96 Brian Module: display File: ccitt.c, save.c Bug#: 5915 Fixed saving of semi-valid compression types (LZW and FIO_1D2D). It had nothing to do with disk space. It was passing back invlaid compression type, which apparantly maps to "out of disk space" in the OCX. -----------------------------------------------------------------------------