Changeset 259


Ignore:
Timestamp:
Aug 16, 2005, 5:37:59 PM (20 years ago)
Author:
root
Message:

remove_udir - avoid corrupting last dirs list

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/walkem.c

    r242 r259  
    1010  05 Jun 05 SHL Use QWL_USER
    1111  13 Aug 05 SHL Run through indent
     12  13 Aug 05 SHL remove_udir - avoid corrupting last dirs list
    1213
    1314***********************************************************************/
     
    4546    CHAR szCurrentPath[CCHMAXPATH];
    4647    CHAR *szReturnPath;
    47 }
    48 WALKER;
     48} WALKER;
    4949
    5050static CHAR WalkFont[CCHMAXPATH] = "";
     
    5353VOID load_setups(VOID)
    5454{
    55 
    5655    ULONG len = sizeof(lastsetups);
    5756
     
    7473VOID save_setups(VOID)
    7574{
    76 
    7775    if (!loadedsetups)
    7876        return;
     
    9189BOOL add_setup(CHAR * name)
    9290{
    93 
    9491    INT x;
    9592
     
    112109BOOL remove_setup(CHAR * name)
    113110{
    114 
    115111    INT x, y;
    116112
     
    137133VOID load_udirs(VOID)
    138134{
    139 
    140135    /* load linked list of user directories from USERDIRS.DAT file */
    141136
    142137    FILE *fp;
    143     LINKDIRS *info, *last = NULL;
     138    LINKDIRS *info;
     139    LINKDIRS *last = NULL;
    144140    CHAR s[CCHMAXPATH + 24];
    145141
     
    185181VOID save_udirs(VOID)
    186182{
    187 
    188183    FILE *fp;
    189184    LINKDIRS *info;
     
    218213}
    219214
     215//=== add_udir - add path to user dir list or last used dir list ===
     216
    220217BOOL add_udir(BOOL userdirs, CHAR * inpath)
    221218{
    222 
    223219    CHAR path[CCHMAXPATH];
    224     LINKDIRS *info, *last = NULL, *temp = NULL;
     220    LINKDIRS *info;
     221    LINKDIRS *last = NULL;
     222    LINKDIRS *temp;
    225223
    226224    if (inpath &&
     
    239237            if (!loadedudirs)
    240238                load_udirs();
    241             info = (userdirs) ? udirhead : ldirhead;
     239            // Search user dir list first unless doing last dirs
     240            info = userdirs ? udirhead : ldirhead;
    242241            while (info)
    243242            {
    244243                if (!stricmp(info -> path, path))
    245                     return FALSE;
    246                 last = info;
     244                    return FALSE;               // Already in list
     245                last = info;                    // Remember append to location
    247246                info = info -> next;
    248247            }
     248            // Search last dir list unless doing just last dirs
    249249            if (!userdirs)
    250250            {
     
    258258            }
    259259            else
    260             {                           /* if adding manual directory, remove from auto list if present */
     260            {
     261                /* if adding manual directory, remove from auto list if present */
    261262                info = ldirhead;
     263                temp = NULL;
    262264                while (info)
    263265                {
     
    276278                }
    277279            }
     280            // Append entry to end of user dirs list
    278281            info = malloc(sizeof(LINKDIRS));
    279282            if (info)
     
    308311}
    309312
     313//=== remove_udir - remove path from user dir list or last directory list ===
     314
    310315BOOL remove_udir(CHAR * path)
    311316{
    312 
    313     LINKDIRS *info, *last = NULL;
     317    LINKDIRS *info;
     318    LINKDIRS *last = NULL;
    314319
    315320    if (path && *path)
     
    334339            info = info -> next;
    335340        }
     341
    336342        info = ldirhead;
     343        last = NULL;
    337344        while (info)
    338345        {
     
    356363BOOL remove_ldir(CHAR * path)
    357364{
    358 
    359     LINKDIRS *info, *last = NULL;
     365    LINKDIRS *info;
     366    LINKDIRS *last = NULL;
    360367
    361368    if (path && *path)
     
    384391                     BOOL nounwriteable)
    385392{
    386 
    387393    /*
    388394     * this function fills one or two list boxes with drive and directory
     
    472478MRESULT EXPENTRY TextSubProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
    473479{
    474 
    475480    PFNWP oldproc = (PFNWP) WinQueryWindowPtr(hwnd, 0);
    476481
     
    492497MRESULT EXPENTRY WalkDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
    493498{
    494 
    495499    WALKER *wa;
    496500    CHAR szBuff[CCHMAXPATH + 1], szBuffer[CCHMAXPATH + 1], *p;
     
    11511155MRESULT EXPENTRY WalkAllDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
    11521156{
    1153 
    11541157    switch (msg)
    11551158    {
     
    11651168MRESULT EXPENTRY WalkCopyDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
    11661169{
    1167 
    11681170    switch (msg)
    11691171    {
     
    11811183MRESULT EXPENTRY WalkMoveDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
    11821184{
    1183 
    11841185    switch (msg)
    11851186    {
     
    11981199                                    MPARAM mp2)
    11991200{
    1200 
    12011201    switch (msg)
    12021202    {
     
    12151215                                   MPARAM mp2)
    12161216{
    1217 
    12181217    switch (msg)
    12191218    {
     
    12451244MRESULT EXPENTRY WalkTwoDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
    12461245{
    1247 
    12481246    WALK2 *wa;
    12491247    CHAR szBuff[CCHMAXPATH + 1], szBuffer[CCHMAXPATH + 1], *p;
     
    16311629                                   MPARAM mp2)
    16321630{
    1633 
    16341631    switch (msg)
    16351632    {
     
    16481645                                   MPARAM mp2)
    16491646{
    1650 
    16511647    switch (msg)
    16521648    {
Note: See TracChangeset for help on using the changeset viewer.