Wine-20050725 vendor drop
Modified: vendor/wine/dlls/cabinet/current/cabextract.c
Modified: vendor/wine/dlls/cabinet/current/fci.c
Modified: vendor/wine/dlls/cabinet/current/fdi.c
Modified: vendor/wine/dlls/comctl32/current/Makefile.in
Modified: vendor/wine/dlls/comctl32/current/comctl32undoc.c
Modified: vendor/wine/dlls/comctl32/current/comctl_Cn.rc
Modified: vendor/wine/dlls/comctl32/current/comctl_Cs.rc
Modified: vendor/wine/dlls/comctl32/current/comctl_De.rc
Modified: vendor/wine/dlls/comctl32/current/comctl_En.rc
Modified: vendor/wine/dlls/comctl32/current/comctl_Es.rc
Modified: vendor/wine/dlls/comctl32/current/comctl_Fr.rc
Modified: vendor/wine/dlls/comctl32/current/comctl_It.rc
Modified: vendor/wine/dlls/comctl32/current/comctl_Ja.rc
Modified: vendor/wine/dlls/comctl32/current/comctl_Ko.rc
Modified: vendor/wine/dlls/comctl32/current/comctl_Nl.rc
Modified: vendor/wine/dlls/comctl32/current/comctl_Pl.rc
Modified: vendor/wine/dlls/comctl32/current/comctl_Pt.rc
Modified: vendor/wine/dlls/comctl32/current/comctl_Ru.rc
Modified: vendor/wine/dlls/comctl32/current/comctl_Si.rc
Modified: vendor/wine/dlls/comctl32/current/comctl_Sv.rc
Modified: vendor/wine/dlls/comctl32/current/comctl_Th.rc
Modified: vendor/wine/dlls/comctl32/current/comctl_Uk.rc
Added: vendor/wine/dlls/comctl32/current/dpa.c
Added: vendor/wine/dlls/comctl32/current/dsa.c
Modified: vendor/wine/dlls/comctl32/current/header.c
Modified: vendor/wine/dlls/comctl32/current/imagelist.c
Modified: vendor/wine/dlls/comctl32/current/listview.c
Modified: vendor/wine/dlls/comctl32/current/propsheet.c
Modified: vendor/wine/dlls/comctl32/current/toolbar.c
Modified: vendor/wine/dlls/comctl32/current/updown.c
Modified: vendor/wine/dlls/commdlg/current/Makefile.in
Modified: vendor/wine/dlls/commdlg/current/cdlg16.h
Modified: vendor/wine/dlls/commdlg/current/cdlg_De.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_En.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_Ru.rc
Modified: vendor/wine/dlls/commdlg/current/colordlg.c
Modified: vendor/wine/dlls/commdlg/current/colordlg16.c
Modified: vendor/wine/dlls/commdlg/current/filedlg.c
Modified: vendor/wine/dlls/commdlg/current/filedlg16.c
Modified: vendor/wine/dlls/commdlg/current/filedlg31.c
Modified: vendor/wine/dlls/commdlg/current/filedlgbrowser.c
Modified: vendor/wine/dlls/commdlg/current/filetitle.c
Modified: vendor/wine/dlls/commdlg/current/finddlg.c
Modified: vendor/wine/dlls/commdlg/current/fontdlg.c
Modified: vendor/wine/dlls/commdlg/current/fontdlg16.c
Modified: vendor/wine/dlls/commdlg/current/printdlg.c
Modified: vendor/wine/dlls/commdlg/current/printdlg16.c
Modified: vendor/wine/dlls/dinput/current/device_private.h
Modified: vendor/wine/dlls/dinput/current/joystick_linux.c
Modified: vendor/wine/dlls/dinput/current/joystick_linuxinput.c
Modified: vendor/wine/dlls/dsound/current/dsound.c
Modified: vendor/wine/dlls/dsound/current/dsound_main.c
Modified: vendor/wine/dlls/dsound/current/dsound_private.h
Added: vendor/wine/dlls/midimap/
Added: vendor/wine/dlls/midimap/Wine-20050628/
Added: vendor/wine/dlls/midimap/current/
Modified: vendor/wine/dlls/midimap/current/Makefile.in
Modified: vendor/wine/dlls/midimap/current/midimap.c
Deleted: vendor/wine/dlls/midimap/current/midimap.drv.spec
Added: vendor/wine/dlls/midimap/current/midimap.spec
Modified: vendor/wine/dlls/mpr/current/pwcache.c
Modified: vendor/wine/dlls/msi/current/Makefile.in
Modified: vendor/wine/dlls/msi/current/action.c
Modified: vendor/wine/dlls/msi/current/action.h
Modified: vendor/wine/dlls/msi/current/appsearch.c
Modified: vendor/wine/dlls/msi/current/custom.c
Modified: vendor/wine/dlls/msi/current/dialog.c
Modified: vendor/wine/dlls/msi/current/events.c
Modified: vendor/wine/dlls/msi/current/files.c
Modified: vendor/wine/dlls/msi/current/helpers.c
Modified: vendor/wine/dlls/msi/current/install.c
Modified: vendor/wine/dlls/msi/current/msi.c
Modified: vendor/wine/dlls/msi/current/msi.spec
Modified: vendor/wine/dlls/msi/current/msipriv.h
Modified: vendor/wine/dlls/msi/current/package.c
Modified: vendor/wine/dlls/msi/current/registry.c
Added: vendor/wine/dlls/msi/current/source.c
Modified: vendor/wine/dlls/msi/current/string.c
Modified: vendor/wine/dlls/msi/current/suminfo.c
Modified: vendor/wine/dlls/msi/current/upgrade.c
Deleted: vendor/wine/dlls/ole32/Wine-20050524/
Modified: vendor/wine/dlls/ole32/current/antimoniker.c
Modified: vendor/wine/dlls/ole32/current/bindctx.c
Modified: vendor/wine/dlls/ole32/current/clipboard.c
Modified: vendor/wine/dlls/ole32/current/compobj.c
Modified: vendor/wine/dlls/ole32/current/compobj.spec
Modified: vendor/wine/dlls/ole32/current/compobj_private.h
Modified: vendor/wine/dlls/ole32/current/compositemoniker.c
Modified: vendor/wine/dlls/ole32/current/datacache.c
Modified: vendor/wine/dlls/ole32/current/defaulthandler.c
Modified: vendor/wine/dlls/ole32/current/errorinfo.c
Modified: vendor/wine/dlls/ole32/current/filemoniker.c
Modified: vendor/wine/dlls/ole32/current/ftmarshal.c
Modified: vendor/wine/dlls/ole32/current/hglobalstream.c
Modified: vendor/wine/dlls/ole32/current/ifs.c
Modified: vendor/wine/dlls/ole32/current/ifs.h
Modified: vendor/wine/dlls/ole32/current/itemmoniker.c
Modified: vendor/wine/dlls/ole32/current/marshal.c
Modified: vendor/wine/dlls/ole32/current/memlockbytes.c
Modified: vendor/wine/dlls/ole32/current/memlockbytes16.c
[truncated at 100 lines; 134 more skipped]
Modified: vendor/wine/dlls/cabinet/current/cabextract.c
--- vendor/wine/dlls/cabinet/current/cabextract.c	2005-08-05 21:47:25 UTC (rev 17087)
+++ vendor/wine/dlls/cabinet/current/cabextract.c	2005-08-05 21:50:34 UTC (rev 17088)
@@ -51,7 +51,7 @@
  */
 
 /* try to open a cabinet file, returns success */
-BOOL cabinet_open(struct cabinet *cab)
+static BOOL cabinet_open(struct cabinet *cab)
 {
   const char *name = cab->filename;
   HANDLE fh;
@@ -89,7 +89,7 @@
  *
  * close the file handle in a struct cabinet.
  */
-void cabinet_close(struct cabinet *cab) {
+static void cabinet_close(struct cabinet *cab) {
   TRACE("(cab == ^%p)\n", cab);
   if (cab->fh) CloseHandle(cab->fh);
   cab->fh = 0;
@@ -98,7 +98,7 @@
 /*******************************************************
  * ensure_filepath2 (internal)
  */
-BOOL ensure_filepath2(char *path) {
+static BOOL ensure_filepath2(char *path) {
   BOOL ret = TRUE;
   int len;
   char *new_path;
@@ -147,7 +147,7 @@
  *
  * ensure_filepath("a\b\c\d.txt") ensures a, a\b and a\b\c exist as dirs
  */
-BOOL ensure_filepath(char *path) {
+static BOOL ensure_filepath(char *path) {
   char new_path[MAX_PATH];
   int len, i, lastslashpos = -1;
 
@@ -176,7 +176,7 @@
  *
  * opens a file for output, returns success
  */
-BOOL file_open(struct cab_file *fi, BOOL lower, LPCSTR dir)
+static BOOL file_open(struct cab_file *fi, BOOL lower, LPCSTR dir)
 {
   char c, *d, *name;
   BOOL ok = FALSE;
@@ -239,7 +239,7 @@
  *
  * closes a completed file
  */
-void file_close(struct cab_file *fi)
+static void file_close(struct cab_file *fi)
 {
   TRACE("(fi == ^%p)\n", fi);
 
@@ -255,7 +255,7 @@
  * writes from buf to a file specified as a cab_file struct.
  * returns success/failure
  */
-BOOL file_write(struct cab_file *fi, cab_UBYTE *buf, cab_off_t length)
+static BOOL file_write(struct cab_file *fi, cab_UBYTE *buf, cab_off_t length)
 {
   DWORD bytes_written;
 
@@ -276,7 +276,7 @@
  * advance the file pointer associated with the cab structure
  * by distance bytes
  */
-void cabinet_skip(struct cabinet *cab, cab_off_t distance)
+static void cabinet_skip(struct cabinet *cab, cab_off_t distance)
 {
   TRACE("(cab == ^%p, distance == %u)\n", cab, distance);
   if (SetFilePointer(cab->fh, distance, NULL, FILE_CURRENT) == INVALID_SET_FILE_POINTER) {
@@ -290,7 +290,7 @@
  *
  * seek to the specified absolute offset in a cab
  */
-void cabinet_seek(struct cabinet *cab, cab_off_t offset) {
+static void cabinet_seek(struct cabinet *cab, cab_off_t offset) {
   TRACE("(cab == ^%p, offset == %u)\n", cab, offset);
   if (SetFilePointer(cab->fh, offset, NULL, FILE_BEGIN) != offset)
     ERR("%s seek failure\n", debugstr_a(cab->filename));
@@ -301,7 +301,7 @@
  *
  * returns the file pointer position of a cab
  */
-cab_off_t cabinet_getoffset(struct cabinet *cab) 
+static cab_off_t cabinet_getoffset(struct cabinet *cab) 
 {
   return SetFilePointer(cab->fh, 0, NULL, FILE_CURRENT);
 }
@@ -311,7 +311,7 @@
  *
  * read data from a cabinet, returns success
  */
-BOOL cabinet_read(struct cabinet *cab, cab_UBYTE *buf, cab_off_t length)
+static BOOL cabinet_read(struct cabinet *cab, cab_UBYTE *buf, cab_off_t length)
 {
   DWORD bytes_read;
   cab_off_t avail = cab->filelen - cabinet_getoffset(cab);
@@ -339,7 +339,7 @@
  *
  * allocate and read an aribitrarily long string from the cabinet
  */
-char *cabinet_read_string(struct cabinet *cab)
+static char *cabinet_read_string(struct cabinet *cab)
 {
   cab_off_t len=256, base = cabinet_getoffset(cab), maxlen = cab->filelen - base;
   BOOL ok = FALSE;
@@ -387,7 +387,7 @@
  *
  * reads the header and all folder and file entries in this cabinet
  */
-BOOL cabinet_read_entries(struct cabinet *cab)
+static BOOL cabinet_read_entries(struct cabinet *cab)
 {
   int num_folders, num_files, header_resv, folder_resv = 0, i;
   struct cab_folder *fol, *linkfol = NULL;
@@ -525,7 +525,7 @@
  * file [name]. Returns a cabinet structure if successful, or NULL
  * otherwise.
  */
-struct cabinet *load_cab_offset(LPCSTR name, cab_off_t offset)
+static struct cabinet *load_cab_offset(LPCSTR name, cab_off_t offset)
 {
   struct cabinet *cab = (struct cabinet *) calloc(1, sizeof(struct cabinet));
   int ok;
@@ -553,7 +553,7 @@
 /********************************************************
  * Ziphuft_free (internal)
  */
-void Ziphuft_free(struct Ziphuft *t)
+static void Ziphuft_free(struct Ziphuft *t)
 {
   register struct Ziphuft *p, *q;
 
@@ -570,7 +570,7 @@
 /*********************************************************
  * Ziphuft_build (internal)
  */
-cab_LONG Ziphuft_build(cab_ULONG *b, cab_ULONG n, cab_ULONG s, cab_UWORD *d, cab_UWORD *e,
+static cab_LONG Ziphuft_build(cab_ULONG *b, cab_ULONG n, cab_ULONG s, cab_UWORD *d, cab_UWORD *e,
 struct Ziphuft **t, cab_LONG *m, cab_decomp_state *decomp_state)
 {
   cab_ULONG a;                   	/* counter for codes of length k */
@@ -750,7 +750,7 @@
 /*********************************************************
  * Zipinflate_codes (internal)
  */
-cab_LONG Zipinflate_codes(struct Ziphuft *tl, struct Ziphuft *td,
+static cab_LONG Zipinflate_codes(struct Ziphuft *tl, struct Ziphuft *td,
   cab_LONG bl, cab_LONG bd, cab_decomp_state *decomp_state)
 {
   register cab_ULONG e;  /* table entry flag/number of extra bits */
@@ -833,7 +833,7 @@
 /***********************************************************
  * Zipinflate_stored (internal)
  */
-cab_LONG Zipinflate_stored(cab_decomp_state *decomp_state)
+static cab_LONG Zipinflate_stored(cab_decomp_state *decomp_state)
 /* "decompress" an inflated type 0 (stored) block. */
 {
   cab_ULONG n;           /* number of bytes in block */
@@ -877,7 +877,7 @@
 /******************************************************
  * Zipinflate_fixed (internal)
  */
-cab_LONG Zipinflate_fixed(cab_decomp_state *decomp_state)
+static cab_LONG Zipinflate_fixed(cab_decomp_state *decomp_state)
 {
   struct Ziphuft *fixed_tl;
   struct Ziphuft *fixed_td;
@@ -923,7 +923,7 @@
 /**************************************************************
  * Zipinflate_dynamic (internal)
  */
-cab_LONG Zipinflate_dynamic(cab_decomp_state *decomp_state)
+static cab_LONG Zipinflate_dynamic(cab_decomp_state *decomp_state)
  /* decompress an inflated type 2 (dynamic Huffman codes) block. */
 {
   cab_LONG i;          	/* temporary variables */
@@ -1058,7 +1058,7 @@
 /*****************************************************
  * Zipinflate_block (internal)
  */
-cab_LONG Zipinflate_block(cab_LONG *e, cab_decomp_state *decomp_state) /* e == last block flag */
+static cab_LONG Zipinflate_block(cab_LONG *e, cab_decomp_state *decomp_state) /* e == last block flag */
 { /* decompress an inflated block */
   cab_ULONG t;           	/* block type */
   register cab_ULONG b;     /* bit buffer */
@@ -1096,7 +1096,7 @@
 /****************************************************
  * ZIPdecompress (internal)
  */
-int ZIPdecompress(int inlen, int outlen, cab_decomp_state *decomp_state)
+static int ZIPdecompress(int inlen, int outlen, cab_decomp_state *decomp_state)
 {
   cab_LONG e;               /* last block flag */
 
@@ -1132,7 +1132,7 @@
  *
  * Initialise a model which decodes symbols from [s] to [s]+[n]-1
  */
-void QTMinitmodel(struct QTMmodel *m, struct QTMmodelsym *sym, int n, int s) {
+static void QTMinitmodel(struct QTMmodel *m, struct QTMmodelsym *sym, int n, int s) {
   int i;
   m->shiftsleft = 4;
   m->entries    = n;
@@ -1149,7 +1149,7 @@
 /******************************************************************
  * QTMinit (internal)
  */
-int QTMinit(int window, int level, cab_decomp_state *decomp_state) {
+static int QTMinit(int window, int level, cab_decomp_state *decomp_state) {
   unsigned int wndsize = 1 << window;
   int msz = window * 2, i;
   cab_ULONG j;
@@ -1256,7 +1256,7 @@
 /*******************************************************************
  * QTMdecompress (internal)
  */
-int QTMdecompress(int inlen, int outlen, cab_decomp_state *decomp_state)
+static int QTMdecompress(int inlen, int outlen, cab_decomp_state *decomp_state)
 {
   cab_UBYTE *inpos  = CAB(inbuf);
   cab_UBYTE *window = QTM(window);
@@ -1438,7 +1438,7 @@
 /************************************************************
  * LZXinit (internal)
  */
-int LZXinit(int window, cab_decomp_state *decomp_state) {
+static int LZXinit(int window, cab_decomp_state *decomp_state) {
   cab_ULONG wndsize = 1 << window;
   int i, j, posn_slots;
 
@@ -1579,7 +1579,7 @@
 /************************************************************
  * lzx_read_lens (internal)
  */
-int lzx_read_lens(cab_UBYTE *lens, cab_ULONG first, cab_ULONG last, struct lzx_bits *lb,
+static int lzx_read_lens(cab_UBYTE *lens, cab_ULONG first, cab_ULONG last, struct lzx_bits *lb,
                   cab_decomp_state *decomp_state) {
   cab_ULONG i,j, x,y;
   int z;
@@ -1626,7 +1626,7 @@
 /*******************************************************
  * LZXdecompress (internal)
  */
-int LZXdecompress(int inlen, int outlen, cab_decomp_state *decomp_state) {
+static int LZXdecompress(int inlen, int outlen, cab_decomp_state *decomp_state) {
   cab_UBYTE *inpos  = CAB(inbuf);
   cab_UBYTE *endinp = inpos + inlen;
   cab_UBYTE *window = LZX(window);
@@ -1949,7 +1949,7 @@
 /*********************************************************
  * find_cabs_in_file (internal)
  */
-struct cabinet *find_cabs_in_file(LPCSTR name, cab_UBYTE search_buf[])
+static struct cabinet *find_cabs_in_file(LPCSTR name, cab_UBYTE search_buf[])
 {
   struct cabinet *cab, *cab2, *firstcab = NULL, *linkcab = NULL;
   cab_UBYTE *pstart = &search_buf[0], *pend, *p;
@@ -2067,7 +2067,7 @@
  * tries to find *cabname, from the directory path of origcab, correcting the
  * case of *cabname if necessary, If found, writes back to *cabname.
  */
-void find_cabinet_file(char **cabname, LPCSTR origcab) {
+static void find_cabinet_file(char **cabname, LPCSTR origcab) {
 
   char *tail, *cab, *name, *nextpart, nametmp[MAX_PATH];
   int found = 0;
@@ -2156,7 +2156,7 @@
  * in CAB.c) for an implementation of this that correctly frees the discarded
  * file entries.
  */
-struct cab_file *process_files(struct cabinet *basecab) {
+static struct cab_file *process_files(struct cabinet *basecab) {
   struct cabinet *cab;
   struct cab_file *outfi = NULL, *linkfi = NULL, *nextfi, *fi, *cfi;
   struct cab_folder *fol, *firstfol, *lastfol = NULL, *predfol;
@@ -2259,7 +2259,7 @@
  * 
  * FIXME: use a winapi to do this
  */
-int convertUTF(cab_UBYTE *in) {
+static int convertUTF(cab_UBYTE *in) {
   cab_UBYTE c, *out = in, *end = in + strlen((char *) in) + 1;
   cab_ULONG x;
 
@@ -2291,7 +2291,7 @@
 /****************************************************
  * NONEdecompress (internal)
  */
-int NONEdecompress(int inlen, int outlen, cab_decomp_state *decomp_state)
+static int NONEdecompress(int inlen, int outlen, cab_decomp_state *decomp_state)
 {
   if (inlen != outlen) return DECR_ILLEGALDATA;
   memcpy(CAB(outbuf), CAB(inbuf), (size_t) inlen);
@@ -2322,7 +2322,7 @@
 /**********************************************************
  * decompress (internal)
  */
-int decompress(struct cab_file *fi, int savemode, int fix, cab_decomp_state *decomp_state)
+static int decompress(struct cab_file *fi, int savemode, int fix, cab_decomp_state *decomp_state)
 {
   cab_ULONG bytes = savemode ? fi->length : fi->offset - CAB(offset);
   struct cabinet *cab = CAB(current)->cab[CAB(split)];
@@ -2412,7 +2412,7 @@
  *
  * workhorse to extract a particular file from a cab
  */
-void extract_file(struct cab_file *fi, int lower, int fix, LPCSTR dir, cab_decomp_state *decomp_state)
+static void extract_file(struct cab_file *fi, int lower, int fix, LPCSTR dir, cab_decomp_state *decomp_state)
 {
   struct cab_folder *fol = fi->folder, *oldfol = CAB(current);
   cab_LONG err = DECR_OK;
@@ -2523,7 +2523,7 @@
 /*********************************************************
  * print_fileinfo (internal)
  */
-void print_fileinfo(struct cab_file *fi) {
+static void print_fileinfo(struct cab_file *fi) {
   char *fname = NULL;
 
   if (fi->attribs & cffile_A_NAME_IS_UTF) {

Modified: vendor/wine/dlls/cabinet/current/fci.c
--- vendor/wine/dlls/cabinet/current/fci.c	2005-08-05 21:47:25 UTC (rev 17087)
+++ vendor/wine/dlls/cabinet/current/fci.c	2005-08-05 21:50:34 UTC (rev 17088)
@@ -23,7 +23,6 @@
 
 There is still some work to be done:
 
-- currently no support for big-endian machines
 - the ERF error structure aren't used on error
 - no real compression yet
 - unknown behaviour if files>4GB or cabinet >4GB
@@ -44,11 +43,22 @@
 #include "windef.h"
 #include "winbase.h"
 #include "winerror.h"
+#include "winternl.h"
 #include "fci.h"
 #include "cabinet.h"
 
 #include "wine/debug.h"
 
+
+#ifdef WORDS_BIGENDIAN
+#define fci_endian_ulong(x) RtlUlongByteSwap(x)
+#define fci_endian_uword(x) RtlUshortByteSwap(x)
+#else
+#define fci_endian_ulong(x) (x)
+#define fci_endian_uword(x) (x)
+#endif
+
+
 WINE_DEFAULT_DEBUG_CHANNEL(cabinet);
 
 typedef struct {
@@ -556,7 +566,7 @@
         read_result=pcfdata->cbData;
         /* Modify the size of the compressed data to store only a part of the */
         /* data block into the current cabinet. This is done to prevent */
-        /* that the maximum cabinet size will be exceeded. The remainer */
+        /* that the maximum cabinet size will be exceeded. The remainder */
         /* will be stored into the next following cabinet. */
 
         /* The cabinet will be of size "p_fci_internal->oldCCAB.cb". */
@@ -599,12 +609,19 @@
         return FALSE;
       }
 
+      /* set little endian */
+      pcfdata->cbData=fci_endian_uword(pcfdata->cbData);
+      pcfdata->cbUncomp=fci_endian_uword(pcfdata->cbUncomp);
+
       /* get checksum and write to cfdata.csum */
       pcfdata->csum = fci_get_checksum( &(pcfdata->cbData),
         sizeof(CFDATA)+cbReserveCFData -
         sizeof(pcfdata->csum), fci_get_checksum( p_fci_internal->data_out, /*buffer*/
         pcfdata->cbData, 0 ) );
 
+      /* set little endian */
+      pcfdata->csum=fci_endian_ulong(pcfdata->csum);
+
       /* write cfdata with checksum to p_fci_internal->handleCFDATA2 */
       if( PFCI_WRITE(hfci, p_fci_internal->handleCFDATA2, /* file handle */
           buffer, /* memory buffer */
@@ -617,6 +634,11 @@
 
       p_fci_internal->sizeFileCFDATA2 += sizeof(CFDATA)+cbReserveCFData;
 
+      /* reset little endian */
+      pcfdata->cbData=fci_endian_uword(pcfdata->cbData);
+      pcfdata->cbUncomp=fci_endian_uword(pcfdata->cbUncomp);
+      pcfdata->csum=fci_endian_ulong(pcfdata->csum);
+
       /* write compressed data into p_fci_internal->handleCFDATA2 */
       if( PFCI_WRITE(hfci, p_fci_internal->handleCFDATA2, /* file handle */
           p_fci_internal->data_out, /* memory buffer */
@@ -632,7 +654,7 @@
       p_fci_internal->statusFolderCopied += pcfdata->cbData;
       (*payload)+=pcfdata->cbUncomp;
       /* if cabinet size too large and data has been split */
-      /* write the remainer of the data block to the new CFDATA1 file */
+      /* write the remainder of the data block to the new CFDATA1 file */
       if( split_block  ) { /* This does not include the */
                                   /* abused one (just search for "abused" )*/
       /* copy all CFDATA structures from handleCFDATA1 to handleCFDATA1new */
@@ -641,7 +663,7 @@
           return FALSE;
         }
 
-        /* set cbData the size of the remainer of the data block */
+        /* set cbData to the size of the remainder of the data block */
         pcfdata->cbData = read_result - pcfdata->cbData;
         /*recover former value of cfdata.cbData; read_result will be the offset*/
         read_result -= pcfdata->cbData;
@@ -649,6 +671,7 @@
 
         /* reset checksum, it will be computed later */
         pcfdata->csum=0;
+
         /* write cfdata WITHOUT checksum to handleCFDATA1new */
         if( PFCI_WRITE(hfci, handleCFDATA1new, /* file handle */
             buffer, /* memory buffer */
@@ -657,7 +680,7 @@
             /* TODO write error */
           return FALSE;
         }
-        /* TODO error handling of err dont forget PFCI_FREE(hfci, reserved) */
+        /* TODO error handling of err don't forget PFCI_FREE(hfci, reserved) */
 
         *psizeFileCFDATA1new += sizeof(CFDATA)+cbReserveCFData;
 
@@ -676,7 +699,7 @@
 
         *psizeFileCFDATA1new += pcfdata->cbData;
         /* the two blocks of the split data block have been written */
-        /* dont reset split_data yet, because it is still needed see below */
+        /* don't reset split_data yet, because it is still needed see below */
       }
 
       /* report status with pfnfcis about copied size of folder */
@@ -721,7 +744,7 @@
           /* TODO read error */
           return FALSE;
         }
-        /* TODO error handling of err dont forget PFCI_FREE(hfci, reserved) */
+        /* TODO error handling of err don't forget PFCI_FREE(hfci, reserved) */
 
         /* write cfdata with checksum to handleCFDATA1new */
         if( PFCI_WRITE(hfci, handleCFDATA1new, /* file handle */
@@ -731,7 +754,7 @@
             /* TODO write error */
           return FALSE;
         }
-        /* TODO error handling of err dont forget PFCI_FREE(hfci, reserved) */
+        /* TODO error handling of err don't forget PFCI_FREE(hfci, reserved) */
 
         *psizeFileCFDATA1new += sizeof(CFDATA)+cbReserveCFData;
 
@@ -779,7 +802,7 @@
   /* absolute offset cannot be set yet, because the size of cabinet header, */
   /* the number of CFFOLDERs and the number of CFFILEs may change. */
   /* Instead the size of all previous data blocks will be stored and */
-  /* the remainer of the offset will be added when the cabinet will be */
+  /* the remainder of the offset will be added when the cabinet will be */
   /* flushed to disk. */
   /* This is exactly the way the original CABINET.DLL works!!! */
   cffolder.coffCabStart=sizeFileCFDATA2old;
@@ -965,6 +988,14 @@
       cffile.iFolder=cffileCONTINUED_TO_NEXT;
     }
 
+    /* set little endian */
+    cffile.cbFile=fci_endian_ulong(cffile.cbFile);
+    cffile.uoffFolderStart=fci_endian_ulong(cffile.uoffFolderStart);
+    cffile.iFolder=fci_endian_uword(cffile.iFolder);
+    cffile.date=fci_endian_uword(cffile.date);
+    cffile.time=fci_endian_uword(cffile.time);
+    cffile.attribs=fci_endian_uword(cffile.attribs);
+
     /* write cffile to p_fci_internal->handleCFFILE2 */
     if( PFCI_WRITE(hfci, p_fci_internal->handleCFFILE2, /* file handle */
       &cffile, /* memory buffer */
@@ -977,6 +1008,14 @@
 
     p_fci_internal->sizeFileCFFILE2 += sizeof(cffile);
 
+    /* reset little endian */
+    cffile.cbFile=fci_endian_ulong(cffile.cbFile);
+    cffile.uoffFolderStart=fci_endian_ulong(cffile.uoffFolderStart);
+    cffile.iFolder=fci_endian_uword(cffile.iFolder);
+    cffile.date=fci_endian_uword(cffile.date);
+    cffile.time=fci_endian_uword(cffile.time);
+    cffile.attribs=fci_endian_uword(cffile.attribs);
+
     /* write file name to p_fci_internal->handleCFFILE2 */
     if( PFCI_WRITE(hfci, p_fci_internal->handleCFFILE2, /* file handle */
       p_fci_internal->data_out, /* memory buffer */
@@ -1580,6 +1619,18 @@
     cfheader.iCabinet = p_fci_internal->pccab->iCab-1;
   }
 
+  /* set little endian */
+  cfheader.reserved1=fci_endian_ulong(cfheader.reserved1);
+  cfheader.cbCabinet=fci_endian_ulong(cfheader.cbCabinet);
+  cfheader.reserved2=fci_endian_ulong(cfheader.reserved2);
+  cfheader.coffFiles=fci_endian_ulong(cfheader.coffFiles);
+  cfheader.reserved3=fci_endian_ulong(cfheader.reserved3);
+  cfheader.cFolders=fci_endian_uword(cfheader.cFolders);
+  cfheader.cFiles=fci_endian_uword(cfheader.cFiles);
+  cfheader.flags=fci_endian_uword(cfheader.flags);
+  cfheader.setID=fci_endian_uword(cfheader.setID);
+  cfheader.iCabinet=fci_endian_uword(cfheader.iCabinet);
+
   /* write CFHEADER into cabinet file */
   if( PFCI_WRITE(hfci, handleCABINET, /* file handle */
       &cfheader, /* memory buffer */
@@ -1590,6 +1641,18 @@
   }
   /* TODO error handling of err */
 
+  /* reset little endian */
+  cfheader.reserved1=fci_endian_ulong(cfheader.reserved1);
+  cfheader.cbCabinet=fci_endian_ulong(cfheader.cbCabinet);
+  cfheader.reserved2=fci_endian_ulong(cfheader.reserved2);
+  cfheader.coffFiles=fci_endian_ulong(cfheader.coffFiles);
+  cfheader.reserved3=fci_endian_ulong(cfheader.reserved3);
+  cfheader.cFolders=fci_endian_uword(cfheader.cFolders);
+  cfheader.cFiles=fci_endian_uword(cfheader.cFiles);
+  cfheader.flags=fci_endian_uword(cfheader.flags);
+  cfheader.setID=fci_endian_uword(cfheader.setID);
+  cfheader.iCabinet=fci_endian_uword(cfheader.iCabinet);
+
   if( cfheader.flags & cfheadRESERVE_PRESENT ) {
     /* NOTE: No checks for maximum value overflows as designed by MS!!! */
     cfreserved.cbCFHeader = cbReserveCFHeader;
@@ -1600,6 +1663,10 @@
     } else {
       cfreserved.cbCFData = p_fci_internal->pccab->cbReserveCFData;
     }
+
+    /* set little endian */
+    cfreserved.cbCFHeader=fci_endian_uword(cfreserved.cbCFHeader);
+
     /* write reserved info into cabinet file */
     if( PFCI_WRITE(hfci, handleCABINET, /* file handle */
         &cfreserved, /* memory buffer */
@@ -1609,6 +1676,9 @@
       return FALSE;
     }
     /* TODO error handling of err */
+
+    /* reset little endian */
+    cfreserved.cbCFHeader=fci_endian_uword(cfreserved.cbCFHeader);
   }
 
   /* add optional reserved area */
@@ -1735,6 +1805,11 @@
       }
     }
 
+    /* set little endian */
+    cffolder.coffCabStart=fci_endian_ulong(cffolder.coffCabStart);
+    cffolder.cCFData=fci_endian_uword(cffolder.cCFData);
+    cffolder.typeCompress=fci_endian_uword(cffolder.typeCompress);
+
     /* write cffolder to cabinet file */
     if( PFCI_WRITE(hfci, handleCABINET, /* file handle */
       &cffolder, /* memory buffer */
@@ -1745,6 +1820,11 @@
     }
     /* TODO error handling of err */
 
+    /* reset little endian */
+    cffolder.coffCabStart=fci_endian_ulong(cffolder.coffCabStart);
+    cffolder.cCFData=fci_endian_uword(cffolder.cCFData);
+    cffolder.typeCompress=fci_endian_uword(cffolder.typeCompress);
+
     /* add optional reserved area */
 
     /* This allocation and freeing at each CFFolder block is a bit */

Modified: vendor/wine/dlls/cabinet/current/fdi.c
--- vendor/wine/dlls/cabinet/current/fdi.c	2005-08-05 21:47:25 UTC (rev 17087)
+++ vendor/wine/dlls/cabinet/current/fdi.c	2005-08-05 21:50:34 UTC (rev 17088)
@@ -243,7 +243,7 @@
  *
  * returns the file pointer position of a file handle.
  */
-long FDI_getoffset(HFDI hfdi, INT_PTR hf)
+static long FDI_getoffset(HFDI hfdi, INT_PTR hf)
 {
   return PFDI_SEEK(hfdi, hf, 0L, SEEK_CUR);
 }
@@ -254,7 +254,7 @@
  * we can't use _msize; the user might not be using malloc, so we require
  * an explicit specification of the previous size.  inefficient.
  */
-void *FDI_realloc(HFDI hfdi, void *mem, size_t prevsize, size_t newsize)
+static void *FDI_realloc(HFDI hfdi, void *mem, size_t prevsize, size_t newsize)
 {
   void *rslt = NULL;
   char *irslt, *imem;
@@ -273,7 +273,7 @@
  *
  * allocate and read an arbitrarily long string from the cabinet
  */
-char *FDI_read_string(HFDI hfdi, INT_PTR hf, long cabsize)
+static char *FDI_read_string(HFDI hfdi, INT_PTR hf, long cabsize)
 {
   size_t len=256,
          oldlen = 0,
@@ -326,7 +326,7 @@
  * process the cabinet header in the style of FDIIsCabinet, but
  * without the sanity checks (and bug)
  */
-BOOL FDI_read_entries(
+static BOOL FDI_read_entries(
         HFDI             hfdi,
         INT_PTR          hf,
         PFDICABINETINFO  pfdici,
@@ -632,7 +632,7 @@
  *
  * Initialize a model which decodes symbols from [s] to [s]+[n]-1
  */
-void QTMfdi_initmodel(struct QTMmodel *m, struct QTMmodelsym *sym, int n, int s) {
+static void QTMfdi_initmodel(struct QTMmodel *m, struct QTMmodelsym *sym, int n, int s) {
   int i;
   m->shiftsleft = 4;
   m->entries    = n;
@@ -649,7 +649,7 @@
 /******************************************************************
  * QTMfdi_init (internal)
  */
-int QTMfdi_init(int window, int level, fdi_decomp_state *decomp_state) {
+static int QTMfdi_init(int window, int level, fdi_decomp_state *decomp_state) {
   unsigned int wndsize = 1 << window;
   int msz = window * 2, i;
   cab_ULONG j;
@@ -701,7 +701,7 @@
 /************************************************************
  * LZXfdi_init (internal)
  */
-int LZXfdi_init(int window, fdi_decomp_state *decomp_state) {
+static int LZXfdi_init(int window, fdi_decomp_state *decomp_state) {
   cab_ULONG wndsize = 1 << window;
   int i, j, posn_slots;
 
@@ -755,7 +755,7 @@
 /****************************************************
  * NONEfdi_decomp(internal)
  */
-int NONEfdi_decomp(int inlen, int outlen, fdi_decomp_state *decomp_state)
+static int NONEfdi_decomp(int inlen, int outlen, fdi_decomp_state *decomp_state)
 {
   if (inlen != outlen) return DECR_ILLEGALDATA;
   memcpy(CAB(outbuf), CAB(inbuf), (size_t) inlen);
@@ -765,7 +765,7 @@
 /********************************************************
  * Ziphuft_free (internal)
  */
-void fdi_Ziphuft_free(HFDI hfdi, struct Ziphuft *t)
+static void fdi_Ziphuft_free(HFDI hfdi, struct Ziphuft *t)
 {
   register struct Ziphuft *p, *q;
 
@@ -782,7 +782,7 @@
 /*********************************************************
  * fdi_Ziphuft_build (internal)
  */
-cab_LONG fdi_Ziphuft_build(cab_ULONG *b, cab_ULONG n, cab_ULONG s, cab_UWORD *d, cab_UWORD *e,
+static cab_LONG fdi_Ziphuft_build(cab_ULONG *b, cab_ULONG n, cab_ULONG s, cab_UWORD *d, cab_UWORD *e,
 struct Ziphuft **t, cab_LONG *m, fdi_decomp_state *decomp_state)
 {
   cab_ULONG a;                   	/* counter for codes of length k */
@@ -1045,7 +1045,7 @@
 /***********************************************************
  * Zipinflate_stored (internal)
  */
-cab_LONG fdi_Zipinflate_stored(fdi_decomp_state *decomp_state)
+static cab_LONG fdi_Zipinflate_stored(fdi_decomp_state *decomp_state)
 /* "decompress" an inflated type 0 (stored) block. */
 {
   cab_ULONG n;           /* number of bytes in block */
@@ -1089,7 +1089,7 @@
 /******************************************************
  * fdi_Zipinflate_fixed (internal)
  */
-cab_LONG fdi_Zipinflate_fixed(fdi_decomp_state *decomp_state)
+static cab_LONG fdi_Zipinflate_fixed(fdi_decomp_state *decomp_state)
 {
   struct Ziphuft *fixed_tl;
   struct Ziphuft *fixed_td;
@@ -1135,7 +1135,7 @@
 /**************************************************************
  * fdi_Zipinflate_dynamic (internal)
  */
-cab_LONG fdi_Zipinflate_dynamic(fdi_decomp_state *decomp_state)
+static cab_LONG fdi_Zipinflate_dynamic(fdi_decomp_state *decomp_state)
  /* decompress an inflated type 2 (dynamic Huffman codes) block. */
 {
   cab_LONG i;          	/* temporary variables */
@@ -1270,7 +1270,7 @@
 /*****************************************************
  * fdi_Zipinflate_block (internal)
  */
-cab_LONG fdi_Zipinflate_block(cab_LONG *e, fdi_decomp_state *decomp_state) /* e == last block flag */
+static cab_LONG fdi_Zipinflate_block(cab_LONG *e, fdi_decomp_state *decomp_state) /* e == last block flag */
 { /* decompress an inflated block */
   cab_ULONG t;           	/* block type */
   register cab_ULONG b;     /* bit buffer */
@@ -1308,7 +1308,7 @@
 /****************************************************
  * ZIPfdi_decomp(internal)
  */
-int ZIPfdi_decomp(int inlen, int outlen, fdi_decomp_state *decomp_state)
+static int ZIPfdi_decomp(int inlen, int outlen, fdi_decomp_state *decomp_state)
 {
   cab_LONG e;               /* last block flag */
 
@@ -1336,7 +1336,7 @@
 /*******************************************************************
  * QTMfdi_decomp(internal)
  */
-int QTMfdi_decomp(int inlen, int outlen, fdi_decomp_state *decomp_state)
+static int QTMfdi_decomp(int inlen, int outlen, fdi_decomp_state *decomp_state)
 {
   cab_UBYTE *inpos  = CAB(inbuf);
   cab_UBYTE *window = QTM(window);
@@ -1462,7 +1462,7 @@
 /************************************************************
  * fdi_lzx_read_lens (internal)
  */
-int fdi_lzx_read_lens(cab_UBYTE *lens, cab_ULONG first, cab_ULONG last, struct lzx_bits *lb,
+static int fdi_lzx_read_lens(cab_UBYTE *lens, cab_ULONG first, cab_ULONG last, struct lzx_bits *lb,
                   fdi_decomp_state *decomp_state) {
   cab_ULONG i,j, x,y;
   int z;
@@ -1509,7 +1509,7 @@
 /*******************************************************
  * LZXfdi_decomp(internal)
  */
-int LZXfdi_decomp(int inlen, int outlen, fdi_decomp_state *decomp_state) {
+static int LZXfdi_decomp(int inlen, int outlen, fdi_decomp_state *decomp_state) {
   cab_UBYTE *inpos  = CAB(inbuf);
   cab_UBYTE *endinp = inpos + inlen;
   cab_UBYTE *window = LZX(window);
@@ -1841,7 +1841,7 @@
  * is also where we jump to additional cabinets in the case of split
  * cab's, and provide (some of) the NEXT_CABINET notification semantics.
  */
-int fdi_decomp(struct fdi_file *fi, int savemode, fdi_decomp_state *decomp_state,
+static int fdi_decomp(struct fdi_file *fi, int savemode, fdi_decomp_state *decomp_state,
   char *pszCabPath, PFNFDINOTIFY pfnfdin, void *pvUser)
 {
   cab_ULONG bytes = savemode ? fi->length : fi->offset - CAB(offset);

Modified: vendor/wine/dlls/comctl32/current/Makefile.in
--- vendor/wine/dlls/comctl32/current/Makefile.in	2005-08-05 21:47:25 UTC (rev 17087)
+++ vendor/wine/dlls/comctl32/current/Makefile.in	2005-08-05 21:50:34 UTC (rev 17088)
@@ -6,7 +6,7 @@
 MODULE    = comctl32.dll
 IMPORTLIB = libcomctl32.$(IMPLIBEXT)
 IMPORTS   = user32 gdi32 advapi32 kernel32
-DELAYIMPORTS = winmm
+DELAYIMPORTS = winmm uxtheme
 EXTRALIBS = $(LIBUNICODE)
 
 C_SRCS = \
@@ -15,7 +15,9 @@
 	comctl32undoc.c \
 	commctrl.c \
 	datetime.c \
+	dpa.c \
 	draglist.c \
+	dsa.c \
 	flatsb.c \
 	header.c \
 	hotkey.c \

Modified: vendor/wine/dlls/comctl32/current/comctl32undoc.c
--- vendor/wine/dlls/comctl32/current/comctl32undoc.c	2005-08-05 21:47:25 UTC (rev 17087)
+++ vendor/wine/dlls/comctl32/current/comctl32undoc.c	2005-08-05 21:50:34 UTC (rev 17088)
@@ -55,314 +55,9 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(commctrl);
 
-struct _DSA
-{
-    INT  nItemCount;
-    LPVOID pData;
-    INT  nMaxCount;
-    INT  nItemSize;
-    INT  nGrow;
-};
-
-struct _DPA
-{
-    INT    nItemCount;
-    LPVOID   *ptrs;
-    HANDLE hHeap;
-    INT    nGrow;
-    INT    nMaxCount;
-};
-
-typedef struct _STREAMDATA
-{
-    DWORD dwSize;
-    DWORD dwData2;
-    DWORD dwItems;
-} STREAMDATA, *PSTREAMDATA;
-
-typedef struct _LOADDATA
-{
-    INT   nCount;
-    PVOID ptr;
-} LOADDATA, *LPLOADDATA;
-
-typedef HRESULT (CALLBACK *DPALOADPROC)(LPLOADDATA,IStream*,LPARAM);
-
 static const WCHAR strMRUList[] = { 'M','R','U','L','i','s','t',0 };
 
 /**************************************************************************
- * DPA_LoadStream [COMCTL32.9]
- *
- * Loads a dynamic pointer array from a stream
- *
- * PARAMS
- *     phDpa    [O] pointer to a handle to a dynamic pointer array
- *     loadProc [I] pointer to a callback function
- *     pStream  [I] pointer to a stream
- *     lParam   [I] application specific value
- *
- * RETURNS
- *     Success: TRUE
- *     Failure: FALSE 
- *
- * NOTES
- *     No more information available yet!
- */
-HRESULT WINAPI DPA_LoadStream (HDPA *phDpa, DPALOADPROC loadProc,
-                               IStream *pStream, LPARAM lParam)
-{
-    HRESULT errCode;
-    LARGE_INTEGER position;
-    ULARGE_INTEGER newPosition;
-    STREAMDATA  streamData;
-    LOADDATA loadData;
-    ULONG ulRead;
-    HDPA hDpa;
-    PVOID *ptr;
-
-    FIXME ("phDpa=%p loadProc=%p pStream=%p lParam=%lx\n",
-	   phDpa, loadProc, pStream, lParam);
-
-    if (!phDpa || !loadProc || !pStream)
-	return E_INVALIDARG;
-
-    *phDpa = (HDPA)NULL;
-
-    position.QuadPart = 0;
-
-    /*
-     * Zero out our streamData
-     */
-    memset(&streamData,0,sizeof(STREAMDATA));
-
-    errCode = IStream_Seek (pStream, position, STREAM_SEEK_CUR, &newPosition);
-    if (errCode != S_OK)
-	return errCode;
-
-    errCode = IStream_Read (pStream, &streamData, sizeof(STREAMDATA), &ulRead);
-    if (errCode != S_OK)
-	return errCode;
-
-    FIXME ("dwSize=%lu dwData2=%lu dwItems=%lu\n",
-	   streamData.dwSize, streamData.dwData2, streamData.dwItems);
-
-    if ( ulRead < sizeof(STREAMDATA) ||
-    lParam < sizeof(STREAMDATA) ||
-	streamData.dwSize < sizeof(STREAMDATA) ||
-	streamData.dwData2 < 1) {
-	errCode = E_FAIL;
-    }
-
-    if (streamData.dwItems > (UINT_MAX / 2 / sizeof(VOID*))) /* 536870911 */
-        return E_OUTOFMEMORY;
-
-    /* create the dpa */
-    hDpa = DPA_Create (streamData.dwItems);
-    if (!hDpa)
-	return E_OUTOFMEMORY;
-
-    if (!DPA_Grow (hDpa, streamData.dwItems))
-	return E_OUTOFMEMORY;
-
-    /* load data from the stream into the dpa */
-    ptr = hDpa->ptrs;
-    for (loadData.nCount = 0; loadData.nCount < streamData.dwItems; loadData.nCount++) {
-        errCode = (loadProc)(&loadData, pStream, lParam);
-	if (errCode != S_OK) {
-	    errCode = S_FALSE;
-	    break;
-	}
-
-	*ptr = loadData.ptr;
-	ptr++;
-    }
-
-    /* set the number of items */
-    hDpa->nItemCount = loadData.nCount;
-
-    /* store the handle to the dpa */
-    *phDpa = hDpa;
-    FIXME ("new hDpa=%p, errorcode=%lx\n", hDpa, errCode);
-
-    return errCode;
-}
-
-
-/**************************************************************************
- * DPA_SaveStream [COMCTL32.10]
- *
- * Saves a dynamic pointer array to a stream
- *
- * PARAMS
- *     hDpa     [I] handle to a dynamic pointer array
- *     loadProc [I] pointer to a callback function
- *     pStream  [I] pointer to a stream
- *     lParam   [I] application specific value
- *
- * RETURNS
- *     Success: TRUE
- *     Failure: FALSE 
- *
- * NOTES
- *     No more information available yet!
- */
-HRESULT WINAPI DPA_SaveStream (const HDPA hDpa, DPALOADPROC loadProc,
-                               IStream *pStream, LPARAM lParam)
-{
-
-    FIXME ("hDpa=%p loadProc=%p pStream=%p lParam=%lx\n",
-	   hDpa, loadProc, pStream, lParam);
-
-    return E_FAIL;
-}
-
-
-/**************************************************************************
- * DPA_Merge [COMCTL32.11]
- *
- * Merge two dynamic pointers arrays.
- *
- * PARAMS
- *     hdpa1       [I] handle to a dynamic pointer array
- *     hdpa2       [I] handle to a dynamic pointer array
- *     dwFlags     [I] flags
- *     pfnCompare  [I] pointer to sort function
- *     pfnMerge    [I] pointer to merge function
- *     lParam      [I] application specific value
- *
- * RETURNS
- *     Success: TRUE
- *     Failure: FALSE 
- *
- * NOTES
- *     No more information available yet!
- */
-BOOL WINAPI DPA_Merge (const HDPA hdpa1, const HDPA hdpa2, DWORD dwFlags,
-                       PFNDPACOMPARE pfnCompare, PFNDPAMERGE pfnMerge,
-                       LPARAM lParam)
-{
-    INT nCount;
-    LPVOID *pWork1, *pWork2;
-    INT nResult, i;
-    INT nIndex;
-
-    TRACE("%p %p %08lx %p %p %08lx)\n",
-	   hdpa1, hdpa2, dwFlags, pfnCompare, pfnMerge, lParam);
-
-    if (IsBadWritePtr (hdpa1, sizeof(*hdpa1)))
-	return FALSE;
-
-    if (IsBadWritePtr (hdpa2, sizeof(*hdpa2)))
-	return FALSE;
-
-    if (IsBadCodePtr ((FARPROC)pfnCompare))
-	return FALSE;
-
-    if (IsBadCodePtr ((FARPROC)pfnMerge))
-	return FALSE;
-
[truncated at 1000 lines; 20198 more skipped]