diff -ruNd x11-toolkits/FWF/patches/patch-ad x11-toolkits/FWF/patches/patch-ad --- x11-toolkits/FWF/patches/patch-ad Sun Apr 26 16:50:40 1998 +++ x11-toolkits/FWF/patches/patch-ad Thu Oct 21 05:25:41 1999 @@ -1,252 +1,3 @@ -*** src/Dir/DirMgr.c.orig Sat Apr 25 20:23:08 1998 ---- src/Dir/DirMgr.c Sat Apr 25 20:55:09 1998 -*************** -*** 24,31 **** - - #include - -! #ifndef NO_REGEXP - #include - #endif - - #define DIR_MGR_FSM_SIZE 1024 ---- 24,33 ---- - - #include - -! #ifdef NO_REGEXP - #include -+ #else -+ #include - #endif - - #define DIR_MGR_FSM_SIZE 1024 -*************** -*** 43,61 **** - { - DirectoryMgr *dm; - PFI f_func,s_func; -! char *f_data; - - if (pattern == NULL) pattern = "*"; -! if (!DirectoryMgrSimpleFilterFunc(pattern,&f_func,&f_data)) - { - return(NULL); - } -! if (!DirectoryMgrSimpleSortingFunc(sort_type,&s_func)) - { - free(f_data); - return(NULL); - } -! dm = DirectoryMgrOpen(path,s_func,f_func,f_data,TRUE); - return(dm); - } /* End DirectoryMgrSimpleOpen */ - ---- 45,63 ---- - { - DirectoryMgr *dm; - PFI f_func,s_func; -! regex_t *f_data; - - if (pattern == NULL) pattern = "*"; -! if (!DirectoryMgrSimpleFilterFunc(pattern, &f_func, &f_data)) - { - return(NULL); - } -! if (!DirectoryMgrSimpleSortingFunc(sort_type, &s_func)) - { - free(f_data); - return(NULL); - } -! dm = DirectoryMgrOpen(path, s_func, f_func, f_data, TRUE); - return(dm); - } /* End DirectoryMgrSimpleOpen */ - -*************** -*** 65,73 **** - char *pattern; - { - PFI f_func; -! char *f_data; - -! if (!DirectoryMgrSimpleFilterFunc(pattern,&f_func,&f_data)) - { - return(FALSE); - } ---- 67,75 ---- - char *pattern; - { - PFI f_func; -! regex_t *f_data; - -! if (!DirectoryMgrSimpleFilterFunc(pattern, &f_func, &f_data)) - { - return(FALSE); - } -*************** -*** 109,118 **** - } /* End DirectoryMgrCanOpen */ - - -! DirectoryMgr *DirectoryMgrOpen(path,c_func,f_func,f_data,free_data) - char *path; - PFI c_func,f_func; -! char *f_data; - int free_data; - { - DirectoryMgr *dm; ---- 111,120 ---- - } /* End DirectoryMgrCanOpen */ - - -! DirectoryMgr *DirectoryMgrOpen(path, c_func, f_func, f_data, free_data) - char *path; - PFI c_func,f_func; -! regex_t *f_data; - int free_data; - { - DirectoryMgr *dm; -*************** -*** 121,127 **** - if (dm == NULL) - { - fprintf(stderr,"DirectoryMgrOpen: out of memory\n"); -! if (free_data && f_data) free(f_data); - return(NULL); - } - if (DirectoryOpen(path,DirectoryMgrDir(dm)) == FALSE) ---- 123,132 ---- - if (dm == NULL) - { - fprintf(stderr,"DirectoryMgrOpen: out of memory\n"); -! if (free_data && f_data) { -! regfree(f_data); -! free(f_data); -! } - return(NULL); - } - if (DirectoryOpen(path,DirectoryMgrDir(dm)) == FALSE) -*************** -*** 129,135 **** - fprintf(stderr,"DirectoryMgrOpen: can't open dir '%s'\n", - DirectoryMgrDir(dm)); - free(dm); -! if (free_data && f_data) free(f_data); - return(NULL); - } - DirectoryMgrCompFunc(dm) = c_func; ---- 134,143 ---- - fprintf(stderr,"DirectoryMgrOpen: can't open dir '%s'\n", - DirectoryMgrDir(dm)); - free(dm); -! if (free_data && f_data) { -! regfree(f_data); -! free(f_data); -! } - return(NULL); - } - DirectoryMgrCompFunc(dm) = c_func; -*************** -*** 155,165 **** - int DirectoryMgrRefilter(dm,f_func,f_data,f_free) - DirectoryMgr *dm; - PFI f_func; -! char *f_data; - int f_free; - { - if (DirectoryMgrFilterData(dm) && DirectoryMgrFreeFilterData(dm)) - { - free(DirectoryMgrFilterData(dm)); - } - DirectoryMgrFilterFunc(dm) = f_func; ---- 163,174 ---- - int DirectoryMgrRefilter(dm,f_func,f_data,f_free) - DirectoryMgr *dm; - PFI f_func; -! regex_t *f_data; - int f_free; - { - if (DirectoryMgrFilterData(dm) && DirectoryMgrFreeFilterData(dm)) - { -+ regfree(DirectoryMgrFilterData(dm)); - free(DirectoryMgrFilterData(dm)); - } - DirectoryMgrFilterFunc(dm) = f_func; -*************** -*** 349,369 **** - - *---------------------------------------------------------------------------*/ - -! int DirectoryMgrSimpleFilterFunc(pattern,ff_ptr,fd_ptr) - char *pattern; - PFI *ff_ptr; -! char **fd_ptr; - { -! #ifndef NO_REGEXP - char regexp[2048]; - - *ff_ptr = DirectoryMgrFilterName; -! *fd_ptr = (char *)malloc(sizeof(char) * DIR_MGR_FSM_SIZE); -! if (*fd_ptr == NULL) return(FALSE); -! RegExpPatternToRegExp(pattern,regexp); -! RegExpCompile(regexp,*fd_ptr,DIR_MGR_FSM_SIZE); -! #endif -! return(TRUE); - } /* End DirectoryMgrSimpleFilterFunc */ - - ---- 358,379 ---- - - *---------------------------------------------------------------------------*/ - -! int DirectoryMgrSimpleFilterFunc(pattern, ff_ptr, fd_ptr) - char *pattern; - PFI *ff_ptr; -! regex_t **fd_ptr; - { -! #ifdef NO_REGEXP - char regexp[2048]; -+ #endif - - *ff_ptr = DirectoryMgrFilterName; -! *fd_ptr = (regex_t *)malloc(sizeof(regex_t)); -! if (!*fd_ptr) -! return(FALSE); -! if (!regcomp(*fd_ptr, pattern, REG_EXTENDED | REG_NOSUB)) -! return(TRUE); -! return FALSE; - } /* End DirectoryMgrSimpleFilterFunc */ - - -*************** -*** 474,486 **** - - *---------------------------------------------------------------------------*/ - -! int DirectoryMgrFilterName(de,fsm) - DirEntry *de; -! char *fsm; - { -! #ifndef NO_REGEXP - return(RegExpMatch(DirEntryFileName(de),fsm)); - #else -! return(TRUE); - #endif - } /* End DirectoryMgrFilterName */ ---- 484,496 ---- - - *---------------------------------------------------------------------------*/ - -! int DirectoryMgrFilterName(de, fsm) - DirEntry *de; -! regex_t *fsm; - { -! #ifdef NO_REGEXP - return(RegExpMatch(DirEntryFileName(de),fsm)); - #else -! return(regexec(fsm, DirEntryFileName(de), 0, NULL, 0)); - #endif - } /* End DirectoryMgrFilterName */ *** src/Dir/DirMgr.h.orig Wed Nov 29 12:47:59 1995 --- src/Dir/DirMgr.h Sat Apr 25 21:48:24 1998 *************** diff -ruNd x11-toolkits/FWF/patches/patch-bd x11-toolkits/FWF/patches/patch-bd --- x11-toolkits/FWF/patches/patch-bd Thu Jan 1 03:00:00 1970 +++ x11-toolkits/FWF/patches/patch-bd Thu Oct 21 05:24:19 1999 @@ -0,0 +1,172 @@ +--- src/Dir/DirMgr.c.orig Wed Nov 29 20:47:59 1995 ++++ src/Dir/DirMgr.c Thu Oct 21 05:19:48 1999 +@@ -24,10 +24,13 @@ + + #include + +-#ifndef NO_REGEXP ++#ifdef NO_REGEXP + #include ++#else ++#include + #endif + ++#include + #define DIR_MGR_FSM_SIZE 1024 + + /*---------------------------------------------------------------------------* +@@ -43,19 +46,20 @@ + { + DirectoryMgr *dm; + PFI f_func,s_func; +- char *f_data; ++ regex_t *f_data; + +- if (pattern == NULL) pattern = "*"; +- if (!DirectoryMgrSimpleFilterFunc(pattern,&f_func,&f_data)) ++ if (pattern == NULL) pattern = ".*"; ++ if (!DirectoryMgrSimpleFilterFunc(pattern, &f_func, &f_data)) + { + return(NULL); + } +- if (!DirectoryMgrSimpleSortingFunc(sort_type,&s_func)) ++ if (!DirectoryMgrSimpleSortingFunc(sort_type, &s_func)) + { ++ regfree(f_data); + free(f_data); + return(NULL); + } +- dm = DirectoryMgrOpen(path,s_func,f_func,f_data,TRUE); ++ dm = DirectoryMgrOpen(path, s_func, f_func, f_data, TRUE); + return(dm); + } /* End DirectoryMgrSimpleOpen */ + +@@ -65,9 +69,9 @@ + char *pattern; + { + PFI f_func; +- char *f_data; ++ regex_t *f_data; + +- if (!DirectoryMgrSimpleFilterFunc(pattern,&f_func,&f_data)) ++ if (!DirectoryMgrSimpleFilterFunc(pattern, &f_func, &f_data)) + { + return(FALSE); + } +@@ -109,10 +113,10 @@ + } /* End DirectoryMgrCanOpen */ + + +-DirectoryMgr *DirectoryMgrOpen(path,c_func,f_func,f_data,free_data) ++DirectoryMgr *DirectoryMgrOpen(path, c_func, f_func, f_data, free_data) + char *path; + PFI c_func,f_func; +-char *f_data; ++regex_t *f_data; + int free_data; + { + DirectoryMgr *dm; +@@ -121,7 +125,10 @@ + if (dm == NULL) + { + fprintf(stderr,"DirectoryMgrOpen: out of memory\n"); +- if (free_data && f_data) free(f_data); ++ if (free_data && f_data) { ++ regfree(f_data); ++ free(f_data); ++ } + return(NULL); + } + if (DirectoryOpen(path,DirectoryMgrDir(dm)) == FALSE) +@@ -129,7 +136,10 @@ + fprintf(stderr,"DirectoryMgrOpen: can't open dir '%s'\n", + DirectoryMgrDir(dm)); + free(dm); +- if (free_data && f_data) free(f_data); ++ if (free_data && f_data) { ++ regfree(f_data); ++ free(f_data); ++ } + return(NULL); + } + DirectoryMgrCompFunc(dm) = c_func; +@@ -155,17 +165,19 @@ + int DirectoryMgrRefilter(dm,f_func,f_data,f_free) + DirectoryMgr *dm; + PFI f_func; +-char *f_data; ++regex_t *f_data; + int f_free; + { + if (DirectoryMgrFilterData(dm) && DirectoryMgrFreeFilterData(dm)) + { ++ regfree(DirectoryMgrFilterData(dm)); + free(DirectoryMgrFilterData(dm)); + } + DirectoryMgrFilterFunc(dm) = f_func; + DirectoryMgrFilterData(dm) = f_data; + DirectoryMgrFreeFilterData(dm) = f_free; + DirectoryMgrRefresh(dm); ++ return(0); + } /* End DirectoryMgrRefilter */ + + +@@ -204,7 +216,7 @@ + } + ++ DirectoryMgrTotalCount(dm); + if ((f_func == NULL) || +- (f_func && f_func(&(cons->dir_entry),f_data))) ++ (f_func && !f_func(&(cons->dir_entry),f_data))) + { + cons->next = NULL; + if (head == NULL) +@@ -349,21 +361,22 @@ + + *---------------------------------------------------------------------------*/ + +-int DirectoryMgrSimpleFilterFunc(pattern,ff_ptr,fd_ptr) ++int DirectoryMgrSimpleFilterFunc(pattern, ff_ptr, fd_ptr) + char *pattern; + PFI *ff_ptr; +-char **fd_ptr; ++regex_t **fd_ptr; + { +-#ifndef NO_REGEXP ++#ifdef NO_REGEXP + char regexp[2048]; ++#endif + + *ff_ptr = DirectoryMgrFilterName; +- *fd_ptr = (char *)malloc(sizeof(char) * DIR_MGR_FSM_SIZE); +- if (*fd_ptr == NULL) return(FALSE); +- RegExpPatternToRegExp(pattern,regexp); +- RegExpCompile(regexp,*fd_ptr,DIR_MGR_FSM_SIZE); +-#endif +- return(TRUE); ++ *fd_ptr = (regex_t *)malloc(sizeof(regex_t)); ++ if (!*fd_ptr) ++ return(FALSE); ++ if (!regcomp(*fd_ptr, pattern, REG_EXTENDED | REG_NOSUB)) ++ return(TRUE); ++ return FALSE; + } /* End DirectoryMgrSimpleFilterFunc */ + + +@@ -474,13 +487,13 @@ + + *---------------------------------------------------------------------------*/ + +-int DirectoryMgrFilterName(de,fsm) ++int DirectoryMgrFilterName(de, fsm) + DirEntry *de; +-char *fsm; ++regex_t *fsm; + { +-#ifndef NO_REGEXP ++#ifdef NO_REGEXP + return(RegExpMatch(DirEntryFileName(de),fsm)); + #else +- return(TRUE); ++ return(regexec(fsm, DirEntryFileName(de), 0, NULL, 0)); + #endif + } /* End DirectoryMgrFilterName */