Changeset 551 for trunk/dll/command.c


Ignore:
Timestamp:
Feb 28, 2007, 2:33:51 AM (18 years ago)
Author:
Gregg Young
Message:

Indentation cleanup

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/command.c

    r507 r551  
    3333#include "tools.h"
    3434
    35 typedef struct {
    36   CHAR  cl[1001];
    37   INT   flags;
    38   CHAR  title[34];
    39 } COMMAND;
     35typedef struct
     36{
     37  CHAR cl[1001];
     38  INT flags;
     39  CHAR title[34];
     40}
     41COMMAND;
    4042
    4143#pragma data_seg(DATA1)
     
    4648#pragma alloc_text(COMMAND,CommandDlgProc,EditCommands,ReOrderProc,CommandTextProc)
    4749
    48 
    49 MRESULT EXPENTRY CommandTextProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
    50 {
    51   PFNWP       oldproc = (PFNWP)WinQueryWindowPtr(hwnd,0);
     50MRESULT EXPENTRY CommandTextProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
     51{
     52  PFNWP oldproc = (PFNWP) WinQueryWindowPtr(hwnd, 0);
    5253  static BOOL emphasized = FALSE;
    5354
    54   switch(msg) {
    55     case DM_DRAGOVER:
    56       if(!emphasized) {
    57         emphasized = TRUE;
    58         DrawTargetEmphasis(hwnd,emphasized);
    59       }
    60       if(AcceptOneDrop(mp1,mp2))
    61         return MRFROM2SHORT(DOR_DROP,
    62                             DO_MOVE);
    63       return MRFROM2SHORT(DOR_NEVERDROP,0);
    64 
    65     case DM_DRAGLEAVE:
    66       if(emphasized) {
     55  switch (msg) {
     56  case DM_DRAGOVER:
     57    if (!emphasized) {
     58      emphasized = TRUE;
     59      DrawTargetEmphasis(hwnd, emphasized);
     60    }
     61    if (AcceptOneDrop(mp1, mp2))
     62      return MRFROM2SHORT(DOR_DROP, DO_MOVE);
     63    return MRFROM2SHORT(DOR_NEVERDROP, 0);
     64
     65  case DM_DRAGLEAVE:
     66    if (emphasized) {
     67      emphasized = FALSE;
     68      DrawTargetEmphasis(hwnd, emphasized);
     69    }
     70    break;
     71
     72  case DM_DROPHELP:
     73    DropHelp(mp1, mp2, hwnd, GetPString(IDS_DROPCMDHELPTEXT));
     74    return 0;
     75
     76  case DM_DROP:
     77    {
     78      char szFrom[CCHMAXPATH + 5];
     79
     80      if (emphasized) {
    6781        emphasized = FALSE;
    68         DrawTargetEmphasis(hwnd,emphasized);
    69       }
    70       break;
    71 
    72     case DM_DROPHELP:
    73       DropHelp(mp1,
    74                mp2,
    75                hwnd,
    76                GetPString(IDS_DROPCMDHELPTEXT));
    77       return 0;
    78 
    79     case DM_DROP:
     82        DrawTargetEmphasis(hwnd, emphasized);
     83      }
     84      if (GetOneDrop(mp1, mp2, szFrom, CCHMAXPATH)) {
     85        strcat(szFrom, " %a");
     86        WinSetWindowText(hwnd, szFrom);
     87      }
     88    }
     89    return 0;
     90  }
     91  return (oldproc) ? oldproc(hwnd, msg, mp1, mp2) :
     92    WinDefWindowProc(hwnd, msg, mp1, mp2);
     93}
     94
     95MRESULT EXPENTRY ReOrderProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
     96{
     97  switch (msg) {
     98  case WM_INITDLG:
     99    if (!cmdhead) {
     100      WinDismissDlg(hwnd, 0);
     101      break;
     102    }
     103    {
     104      LINKCMDS *info;
     105      SHORT x;
     106
     107      info = cmdhead;
     108      while (info) {
     109        x = (SHORT) WinSendDlgItemMsg(hwnd, RE_ADDLISTBOX, LM_INSERTITEM,
     110                                      MPFROMSHORT(LIT_END),
     111                                      MPFROMP(info->title));
     112        if (x < 0) {
     113          Runtime_Error(pszSrcFile, __LINE__, "no cmd");
     114          WinDismissDlg(hwnd, 0);
     115        }
     116        else {
     117          WinSendDlgItemMsg(hwnd, RE_ADDLISTBOX, LM_SETITEMHANDLE,
     118                            MPFROMSHORT(x), MPFROMP(info));
     119        }
     120        info = info->next;
     121      }
     122    }
     123    break;
     124
     125  case WM_CONTROL:
     126    return 0;
     127
     128  case WM_COMMAND:
     129    switch (SHORT1FROMMP(mp1)) {
     130    case DID_CANCEL:
     131      WinDismissDlg(hwnd, 0);
     132      break;
     133
     134    case DID_OK:
    80135      {
    81         char szFrom[CCHMAXPATH + 5];
    82 
    83         if(emphasized) {
    84           emphasized = FALSE;
    85           DrawTargetEmphasis(hwnd,emphasized);
    86         }
    87         if(GetOneDrop(mp1,mp2,szFrom,CCHMAXPATH)) {
    88           strcat(szFrom," %a");
    89           WinSetWindowText(hwnd,szFrom);
    90         }
    91       }
    92       return 0;
    93   }
    94   return (oldproc) ? oldproc(hwnd,msg,mp1,mp2) :
    95                      WinDefWindowProc(hwnd,msg,mp1,mp2);
    96 }
    97 
    98 
    99 MRESULT EXPENTRY ReOrderProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
    100 {
    101   switch(msg) {
    102     case WM_INITDLG:
    103       if(!cmdhead) {
    104         WinDismissDlg(hwnd,0);
    105         break;
    106       }
     136        LINKCMDS *temphead = NULL, *info, *last = NULL, *temptail = NULL;
     137        SHORT sSelect, numitems;
     138
     139        sSelect = 0;
     140        numitems = (SHORT) WinSendDlgItemMsg(hwnd, RE_REMOVELISTBOX,
     141                                             LM_QUERYITEMCOUNT,
     142                                             MPVOID, MPVOID);
     143        while (numitems) {
     144          info = (LINKCMDS *) WinSendDlgItemMsg(hwnd, RE_REMOVELISTBOX,
     145                                                LM_QUERYITEMHANDLE,
     146                                                MPFROMSHORT(sSelect++),
     147                                                MPVOID);
     148          if (info) {
     149            if (!temphead) {
     150              temphead = info;
     151              info->prev = NULL;
     152            }
     153            else {
     154              last->next = info;
     155              info->prev = last;
     156            }
     157            temptail = info;
     158            last = info;
     159            info->next = NULL;
     160          }
     161          numitems--;
     162        }
     163        sSelect = 0;
     164        numitems = (SHORT) WinSendDlgItemMsg(hwnd, RE_ADDLISTBOX,
     165                                             LM_QUERYITEMCOUNT,
     166                                             MPVOID, MPVOID);
     167        while (numitems) {
     168          info = (LINKCMDS *) WinSendDlgItemMsg(hwnd, RE_ADDLISTBOX,
     169                                                LM_QUERYITEMHANDLE,
     170                                                MPFROMSHORT(sSelect++),
     171                                                MPVOID);
     172          if (info) {
     173            if (!temphead) {
     174              temphead = info;
     175              info->prev = NULL;
     176            }
     177            else {
     178              last->next = info;
     179              info->prev = last;
     180            }
     181            temptail = info;
     182            last = info;
     183            info->next = NULL;
     184          }
     185          numitems--;
     186        }
     187        cmdhead = temphead;
     188        cmdtail = temptail;
     189      }
     190      WinDismissDlg(hwnd, 1);
     191      break;
     192
     193    case IDM_HELP:
     194      if (hwndHelp)
     195        WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
     196                   MPFROM2SHORT(HELP_REORDERCOMMANDS, 0),
     197                   MPFROMSHORT(HM_RESOURCEID));
     198      break;
     199
     200    case RE_ADD:
    107201      {
     202        SHORT sSelect, x;
    108203        LINKCMDS *info;
    109         SHORT     x;
    110 
    111         info = cmdhead;
    112         while(info) {
    113           x = (SHORT)WinSendDlgItemMsg(hwnd,RE_ADDLISTBOX,LM_INSERTITEM,
    114                                        MPFROMSHORT(LIT_END),
    115                                        MPFROMP(info->title));
    116           if(x < 0) {
    117             Runtime_Error(pszSrcFile, __LINE__, "no cmd");
    118             WinDismissDlg(hwnd,0);
    119           }
    120           else {
    121             WinSendDlgItemMsg(hwnd,RE_ADDLISTBOX,LM_SETITEMHANDLE,
    122                               MPFROMSHORT(x),MPFROMP(info));
    123           }
    124           info = info->next;
    125         }
    126       }
    127       break;
    128 
    129     case WM_CONTROL:
    130       return 0;
    131 
    132     case WM_COMMAND:
    133       switch(SHORT1FROMMP(mp1)) {
    134         case DID_CANCEL:
    135           WinDismissDlg(hwnd,0);
    136           break;
    137 
    138         case DID_OK:
    139           {
    140             LINKCMDS *temphead = NULL,*info,*last = NULL,*temptail = NULL;
    141             SHORT     sSelect,numitems;
    142 
    143             sSelect = 0;
    144             numitems = (SHORT)WinSendDlgItemMsg(hwnd,RE_REMOVELISTBOX,
    145                                                 LM_QUERYITEMCOUNT,
    146                                                 MPVOID,MPVOID);
    147             while(numitems) {
    148               info = (LINKCMDS *)WinSendDlgItemMsg(hwnd,RE_REMOVELISTBOX,
    149                                                    LM_QUERYITEMHANDLE,
    150                                                    MPFROMSHORT(sSelect++),
    151                                                    MPVOID);
    152               if(info) {
    153                 if(!temphead) {
    154                   temphead = info;
    155                   info->prev = NULL;
    156                 }
    157                 else {
    158                   last->next = info;
    159                   info->prev = last;
    160                 }
    161                 temptail = info;
    162                 last = info;
    163                 info->next = NULL;
    164               }
    165               numitems--;
     204
     205        sSelect = (SHORT) WinSendDlgItemMsg(hwnd, RE_ADDLISTBOX,
     206                                            LM_QUERYSELECTION,
     207                                            MPFROMSHORT(LIT_FIRST), MPVOID);
     208        while (sSelect >= 0) {
     209          info = (LINKCMDS *) WinSendDlgItemMsg(hwnd, RE_ADDLISTBOX,
     210                                                LM_QUERYITEMHANDLE,
     211                                                MPFROMSHORT(sSelect), MPVOID);
     212          if (info) {
     213            x = (SHORT) WinSendDlgItemMsg(hwnd, RE_REMOVELISTBOX,
     214                                          LM_INSERTITEM,
     215                                          MPFROM2SHORT(LIT_END, 0),
     216                                          MPFROMP(info->title));
     217            if (x >= 0) {
     218              WinSendDlgItemMsg(hwnd, RE_REMOVELISTBOX,
     219                                LM_SETITEMHANDLE,
     220                                MPFROMSHORT(x), MPFROMP(info));
     221              WinSendDlgItemMsg(hwnd, RE_ADDLISTBOX, LM_DELETEITEM,
     222                                MPFROMSHORT(sSelect), MPVOID);
    166223            }
    167             sSelect = 0;
    168             numitems = (SHORT)WinSendDlgItemMsg(hwnd,RE_ADDLISTBOX,
    169                                                 LM_QUERYITEMCOUNT,
    170                                                 MPVOID,MPVOID);
    171             while(numitems) {
    172               info = (LINKCMDS *)WinSendDlgItemMsg(hwnd,RE_ADDLISTBOX,
    173                                                    LM_QUERYITEMHANDLE,
    174                                                    MPFROMSHORT(sSelect++),
    175                                                    MPVOID);
    176               if(info) {
    177                 if(!temphead) {
    178                   temphead = info;
    179                   info->prev = NULL;
    180                 }
    181                 else {
    182                   last->next = info;
    183                   info->prev = last;
    184                 }
    185                 temptail = info;
    186                 last = info;
    187                 info->next = NULL;
    188               }
    189               numitems--;
    190             }
    191             cmdhead = temphead;
    192             cmdtail = temptail;
    193           }
    194           WinDismissDlg(hwnd,1);
    195           break;
    196 
    197         case IDM_HELP:
    198           if(hwndHelp)
    199             WinSendMsg(hwndHelp,HM_DISPLAY_HELP,
    200                        MPFROM2SHORT(HELP_REORDERCOMMANDS,0),
    201                        MPFROMSHORT(HM_RESOURCEID));
    202           break;
    203 
    204         case RE_ADD:
    205           {
    206             SHORT     sSelect,x;
    207             LINKCMDS *info;
    208 
    209             sSelect = (SHORT)WinSendDlgItemMsg(hwnd,RE_ADDLISTBOX,
     224          }
     225          else
     226            WinSendDlgItemMsg(hwnd, RE_ADDLISTBOX, LM_SELECTITEM,
     227                              MPFROMSHORT(sSelect), MPFROMSHORT(FALSE));
     228          sSelect = (USHORT) WinSendDlgItemMsg(hwnd, RE_ADDLISTBOX,
    210229                                               LM_QUERYSELECTION,
    211230                                               MPFROMSHORT(LIT_FIRST),
    212231                                               MPVOID);
    213             while(sSelect >= 0) {
    214               info = (LINKCMDS *)WinSendDlgItemMsg(hwnd,RE_ADDLISTBOX,
    215                                                    LM_QUERYITEMHANDLE,
    216                                                    MPFROMSHORT(sSelect),
    217                                                    MPVOID);
    218               if(info) {
    219                 x = (SHORT)WinSendDlgItemMsg(hwnd,RE_REMOVELISTBOX,
    220                                              LM_INSERTITEM,
    221                                              MPFROM2SHORT(LIT_END,0),
    222                                              MPFROMP(info->title));
    223                 if(x >= 0) {
    224                   WinSendDlgItemMsg(hwnd,RE_REMOVELISTBOX,
    225                                     LM_SETITEMHANDLE,
    226                                     MPFROMSHORT(x),
    227                                     MPFROMP(info));
    228                   WinSendDlgItemMsg(hwnd,RE_ADDLISTBOX,LM_DELETEITEM,
    229                                     MPFROMSHORT(sSelect),MPVOID);
    230                 }
    231               }
    232               else
    233                 WinSendDlgItemMsg(hwnd,RE_ADDLISTBOX,LM_SELECTITEM,
    234                                   MPFROMSHORT(sSelect),MPFROMSHORT(FALSE));
    235               sSelect = (USHORT)WinSendDlgItemMsg(hwnd,RE_ADDLISTBOX,
    236                                                   LM_QUERYSELECTION,
    237                                                   MPFROMSHORT(LIT_FIRST),
    238                                                   MPVOID);
     232        }
     233      }
     234      break;
     235
     236    case RE_REMOVE:
     237      {
     238        SHORT sSelect, x;
     239        LINKCMDS *info;
     240
     241        sSelect = (SHORT) WinSendDlgItemMsg(hwnd, RE_REMOVELISTBOX,
     242                                            LM_QUERYSELECTION,
     243                                            MPFROMSHORT(LIT_FIRST), MPVOID);
     244        while (sSelect >= 0) {
     245          info = (LINKCMDS *) WinSendDlgItemMsg(hwnd, RE_REMOVELISTBOX,
     246                                                LM_QUERYITEMHANDLE,
     247                                                MPFROMSHORT(sSelect), MPVOID);
     248          if (info) {
     249            x = (SHORT) WinSendDlgItemMsg(hwnd, RE_ADDLISTBOX,
     250                                          LM_INSERTITEM,
     251                                          MPFROM2SHORT(LIT_END, 0),
     252                                          MPFROMP(info->title));
     253            if (x >= 0) {
     254              WinSendDlgItemMsg(hwnd, RE_ADDLISTBOX,
     255                                LM_SETITEMHANDLE,
     256                                MPFROMSHORT(x), MPFROMP(info));
     257              WinSendDlgItemMsg(hwnd, RE_REMOVELISTBOX, LM_DELETEITEM,
     258                                MPFROMSHORT(sSelect), MPVOID);
    239259            }
    240260          }
    241           break;
    242 
    243         case RE_REMOVE:
    244           {
    245             SHORT     sSelect,x;
    246             LINKCMDS *info;
    247 
    248             sSelect = (SHORT)WinSendDlgItemMsg(hwnd,RE_REMOVELISTBOX,
     261          else
     262            WinSendDlgItemMsg(hwnd, RE_REMOVELISTBOX, LM_SELECTITEM,
     263                              MPFROMSHORT(sSelect), MPFROMSHORT(FALSE));
     264          sSelect = (USHORT) WinSendDlgItemMsg(hwnd, RE_REMOVELISTBOX,
    249265                                               LM_QUERYSELECTION,
    250266                                               MPFROMSHORT(LIT_FIRST),
    251267                                               MPVOID);
    252             while(sSelect >= 0) {
    253               info = (LINKCMDS *)WinSendDlgItemMsg(hwnd,RE_REMOVELISTBOX,
    254                                                    LM_QUERYITEMHANDLE,
    255                                                    MPFROMSHORT(sSelect),
    256                                                    MPVOID);
    257               if(info) {
    258                 x = (SHORT)WinSendDlgItemMsg(hwnd,RE_ADDLISTBOX,
    259                                              LM_INSERTITEM,
    260                                              MPFROM2SHORT(LIT_END,0),
    261                                              MPFROMP(info->title));
    262                 if(x >= 0) {
    263                   WinSendDlgItemMsg(hwnd,RE_ADDLISTBOX,
    264                                     LM_SETITEMHANDLE,
    265                                     MPFROMSHORT(x),
    266                                     MPFROMP(info));
    267                   WinSendDlgItemMsg(hwnd,RE_REMOVELISTBOX,LM_DELETEITEM,
    268                                     MPFROMSHORT(sSelect),MPVOID);
    269                 }
    270               }
    271               else
    272                 WinSendDlgItemMsg(hwnd,RE_REMOVELISTBOX,LM_SELECTITEM,
    273                                   MPFROMSHORT(sSelect),MPFROMSHORT(FALSE));
    274               sSelect = (USHORT)WinSendDlgItemMsg(hwnd,RE_REMOVELISTBOX,
    275                                                   LM_QUERYSELECTION,
    276                                                   MPFROMSHORT(LIT_FIRST),
    277                                                   MPVOID);
    278             }
    279           }
    280           break;
    281       }
    282       return 0;
    283   }
    284   return WinDefDlgProc(hwnd,msg,mp1,mp2);
    285 }
    286 
    287 
    288 CHAR *command_title (INT cx)
    289 {
    290   static CHAR  duh[] = "???";
    291   LINKCMDS    *info;
    292   INT          x = 0;
    293 
    294   if(!cmdloaded)
     268        }
     269      }
     270      break;
     271    }
     272    return 0;
     273  }
     274  return WinDefDlgProc(hwnd, msg, mp1, mp2);
     275}
     276
     277CHAR *command_title(INT cx)
     278{
     279  static CHAR duh[] = "???";
     280  LINKCMDS *info;
     281  INT x = 0;
     282
     283  if (!cmdloaded)
    295284    load_commands();
    296285  info = cmdhead;
    297   while(info) {
    298     if(x == cx)
     286  while (info) {
     287    if (x == cx)
    299288      return info->title;
    300289    info = info->next;
     
    303292}
    304293
    305 
    306 VOID free_commands (VOID)
    307 {
    308   LINKCMDS *info,*next;
     294VOID free_commands(VOID)
     295{
     296  LINKCMDS *info, *next;
    309297
    310298  info = cmdhead;
    311   while(info) {
     299  while (info) {
    312300    next = info->next;
    313301    free(info->title);
     
    319307}
    320308
    321 
    322 VOID load_commands (VOID)
    323 {
    324   FILE     *fp;
     309VOID load_commands(VOID)
     310{
     311  FILE *fp;
    325312  LINKCMDS *info;
    326   CHAR      cl[1024];
    327   CHAR      title[100];
    328   CHAR      flags[72];
    329 
    330   if(cmdhead)
     313  CHAR cl[1024];
     314  CHAR title[100];
     315  CHAR flags[72];
     316
     317  if (cmdhead)
    331318    free_commands();
    332319  cmdloaded = TRUE;
    333320  save_dir2(cl);
    334   if(cl[strlen(cl) - 1] != '\\')
    335     strcat(cl,"\\");
    336   strcat(cl,"COMMANDS.DAT");
    337   fp = _fsopen(cl,"r",SH_DENYWR);
    338   if(fp) {
     321  if (cl[strlen(cl) - 1] != '\\')
     322    strcat(cl, "\\");
     323  strcat(cl, "COMMANDS.DAT");
     324  fp = _fsopen(cl, "r", SH_DENYWR);
     325  if (fp) {
    339326    while (!feof(fp)) {
    340       if (!xfgets_bstripcr(title,sizeof(title),fp,pszSrcFile,__LINE__))
     327      if (!xfgets_bstripcr(title, sizeof(title), fp, pszSrcFile, __LINE__))
    341328        break;
    342329      title[34] = 0;                    // fixme to know why chopped this way?
     
    344331      if (!*title || *title == ';')
    345332        continue;
    346       if (!xfgets(cl,sizeof(cl),fp,pszSrcFile,__LINE__))
    347         break;                       /* error! */
    348       if (!xfgets(flags,72,fp,pszSrcFile,__LINE__))
    349         break;                       /* error! */
     333      if (!xfgets(cl, sizeof(cl), fp, pszSrcFile, __LINE__))
     334        break;                          /* error! */
     335      if (!xfgets(flags, 72, fp, pszSrcFile, __LINE__))
     336        break;                          /* error! */
    350337      cl[1000] = 0;                     // fixme to know why chopped this way?
    351338      bstripcr(cl);
    352339      flags[34] = 0;
    353340      bstripcr(flags);
    354       if(!*cl)
     341      if (!*cl)
    355342        continue;
    356       info = xmallocz(sizeof(LINKCMDS),pszSrcFile,__LINE__);
     343      info = xmallocz(sizeof(LINKCMDS), pszSrcFile, __LINE__);
    357344      if (info) {
    358         info->cl = xstrdup(cl,pszSrcFile,__LINE__);
    359         info->title = xstrdup(title,pszSrcFile,__LINE__);
     345        info->cl = xstrdup(cl, pszSrcFile, __LINE__);
     346        info->title = xstrdup(title, pszSrcFile, __LINE__);
    360347        info->flags = atol(flags);
    361         if(!info->cl || !info->title) {
    362           if(info->cl)
     348        if (!info->cl || !info->title) {
     349          if (info->cl)
    363350            free(info->cl);
    364           if(info->title)
     351          if (info->title)
    365352            free(info->title);
    366353          free(info);
    367354          break;
    368355        }
    369         if(!cmdhead)
     356        if (!cmdhead)
    370357          cmdhead = info;
    371358        else {
     
    380367}
    381368
    382 
    383 VOID save_commands (VOID)
     369VOID save_commands(VOID)
    384370{
    385371  LINKCMDS *info;
    386   FILE     *fp;
    387   CHAR      s[CCHMAXPATH + 14];
    388 
    389   if(!cmdloaded || !cmdhead)
     372  FILE *fp;
     373  CHAR s[CCHMAXPATH + 14];
     374
     375  if (!cmdloaded || !cmdhead)
    390376    return;
    391377  info = cmdhead;
    392378  save_dir2(s);
    393   if(s[strlen(s) - 1] != '\\')
    394     strcat(s,"\\");
    395   strcat(s,"COMMANDS.DAT");
    396   fp = xfopen(s,"w",pszSrcFile,__LINE__);
     379  if (s[strlen(s) - 1] != '\\')
     380    strcat(s, "\\");
     381  strcat(s, "COMMANDS.DAT");
     382  fp = xfopen(s, "w", pszSrcFile, __LINE__);
    397383  if (fp) {
    398     fputs(GetPString(IDS_COMMANDFILETEXT),fp);
     384    fputs(GetPString(IDS_COMMANDFILETEXT), fp);
    399385    info = cmdhead;
    400     while(info) {
     386    while (info) {
    401387      fprintf(fp,
    402388              ";\n%0.34s\n%0.1000s\n%lu\n",
    403               info->title,
    404               info->cl,
    405               info->flags);
     389              info->title, info->cl, info->flags);
    406390      info = info->next;
    407391    }
     
    410394}
    411395
    412 
    413396//== add_command() Add command to list ==
    414397
    415 LINKCMDS *add_command (COMMAND *addme)
     398LINKCMDS *add_command(COMMAND * addme)
    416399{
    417400  LINKCMDS *info;
    418401
    419402  if (!addme || !*addme->cl || !*addme->title)
    420     return NULL;                // No data
     403    return NULL;                        // No data
    421404  info = cmdhead;
    422405  while (info) {
    423     if (!stricmp(info->title,addme->title))
    424       return NULL;              // Got a dup
     406    if (!stricmp(info->title, addme->title))
     407      return NULL;                      // Got a dup
    425408    info = info->next;
    426409  }
    427   info = xmallocz(sizeof(LINKCMDS),pszSrcFile,__LINE__);
     410  info = xmallocz(sizeof(LINKCMDS), pszSrcFile, __LINE__);
    428411  if (!info)
    429412    return NULL;
    430   info->cl = xstrdup(addme->cl,pszSrcFile,__LINE__);
    431   info->title = xstrdup(addme->title,pszSrcFile,__LINE__);
     413  info->cl = xstrdup(addme->cl, pszSrcFile, __LINE__);
     414  info->title = xstrdup(addme->title, pszSrcFile, __LINE__);
    432415  if (addme->flags)
    433416    info->flags = addme->flags;
     
    449432}
    450433
    451 
    452 BOOL kill_command (CHAR *killme)
     434BOOL kill_command(CHAR * killme)
    453435{
    454436  LINKCMDS *info;
    455437
    456   if(killme && *killme) {
     438  if (killme && *killme) {
    457439    info = cmdhead;
    458     while(info) {
    459       if(!stricmp(info->title,killme)) {
    460         if(info == cmdhead) {
     440    while (info) {
     441      if (!stricmp(info->title, killme)) {
     442        if (info == cmdhead) {
    461443          cmdhead = info->next;
    462           if(info == cmdtail)
     444          if (info == cmdtail)
    463445            cmdtail = info->prev;
    464446        }
    465447        else {
    466           if(info->next)
     448          if (info->next)
    467449            (info->next)->prev = info->prev;
    468           if(info->prev)
     450          if (info->prev)
    469451            (info->prev)->next = info->next;
    470           if(info == cmdtail)
     452          if (info == cmdtail)
    471453            cmdtail = info->prev;
    472454        }
     
    482464}
    483465
    484 
    485 MRESULT EXPENTRY CommandDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
    486 {
    487   SHORT     x;
     466MRESULT EXPENTRY CommandDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
     467{
     468  SHORT x;
    488469  LINKCMDS *info;
    489470
    490   switch(msg) {
    491     case WM_INITDLG:
    492       WinSendDlgItemMsg(hwnd,CMD_LISTBOX,LM_DELETEALL,MPVOID,MPVOID);
    493       WinSendDlgItemMsg(hwnd,CMD_CL,EM_SETTEXTLIMIT,
    494                         MPFROM2SHORT(1000,0),MPVOID);
    495       WinSendDlgItemMsg(hwnd,CMD_TITLE,EM_SETTEXTLIMIT,
    496                         MPFROM2SHORT(33,0),MPVOID);
    497       WinSetDlgItemText(hwnd,CMD_CL,NullStr);
    498       WinSetDlgItemText(hwnd,CMD_TITLE,NullStr);
    499       WinCheckButton(hwnd,CMD_DEFAULT,TRUE);
    500       WinCheckButton(hwnd,CMD_PROMPT,FALSE);
    501       WinCheckButton(hwnd,CMD_ONCE,FALSE);
    502       info = cmdhead;
    503       while(info) {
    504         x = (SHORT)WinSendDlgItemMsg(hwnd,CMD_LISTBOX,LM_INSERTITEM,
    505                                      MPFROM2SHORT(LIT_END,0),
    506                                      MPFROMP(info->title));
    507         if(x >= 0)
    508           WinSendDlgItemMsg(hwnd,CMD_LISTBOX,LM_SETITEMHANDLE,
    509                             MPFROMSHORT(x),MPFROMP(info));
    510         info = info->next;
    511       }
    512       WinSendDlgItemMsg(hwnd,CMD_LISTBOX,LM_SELECTITEM,
    513                         MPFROMSHORT(0),MPFROMSHORT(TRUE));
     471  switch (msg) {
     472  case WM_INITDLG:
     473    WinSendDlgItemMsg(hwnd, CMD_LISTBOX, LM_DELETEALL, MPVOID, MPVOID);
     474    WinSendDlgItemMsg(hwnd, CMD_CL, EM_SETTEXTLIMIT,
     475                      MPFROM2SHORT(1000, 0), MPVOID);
     476    WinSendDlgItemMsg(hwnd, CMD_TITLE, EM_SETTEXTLIMIT,
     477                      MPFROM2SHORT(33, 0), MPVOID);
     478    WinSetDlgItemText(hwnd, CMD_CL, NullStr);
     479    WinSetDlgItemText(hwnd, CMD_TITLE, NullStr);
     480    WinCheckButton(hwnd, CMD_DEFAULT, TRUE);
     481    WinCheckButton(hwnd, CMD_PROMPT, FALSE);
     482    WinCheckButton(hwnd, CMD_ONCE, FALSE);
     483    info = cmdhead;
     484    while (info) {
     485      x = (SHORT) WinSendDlgItemMsg(hwnd, CMD_LISTBOX, LM_INSERTITEM,
     486                                    MPFROM2SHORT(LIT_END, 0),
     487                                    MPFROMP(info->title));
     488      if (x >= 0)
     489        WinSendDlgItemMsg(hwnd, CMD_LISTBOX, LM_SETITEMHANDLE,
     490                          MPFROMSHORT(x), MPFROMP(info));
     491      info = info->next;
     492    }
     493    WinSendDlgItemMsg(hwnd, CMD_LISTBOX, LM_SELECTITEM,
     494                      MPFROMSHORT(0), MPFROMSHORT(TRUE));
     495    {
     496      PFNWP oldproc;
     497
     498      oldproc = WinSubclassWindow(WinWindowFromID(hwnd, CMD_CL),
     499                                  (PFNWP) CommandTextProc);
     500      if (oldproc)
     501        WinSetWindowPtr(WinWindowFromID(hwnd, CMD_CL), 0, (PVOID) oldproc);
     502    }
     503    break;
     504
     505  case WM_CONTROL:
     506    if (SHORT1FROMMP(mp1) == CMD_LISTBOX) {
     507      switch (SHORT2FROMMP(mp1)) {
     508      case LN_ENTER:
     509      case LN_SELECT:
     510        x = (SHORT) WinSendDlgItemMsg(hwnd, CMD_LISTBOX,
     511                                      LM_QUERYSELECTION,
     512                                      MPFROMSHORT(LIT_FIRST), MPVOID);
     513        if (x >= 0) {
     514          info = (LINKCMDS *) WinSendDlgItemMsg(hwnd, CMD_LISTBOX,
     515                                                LM_QUERYITEMHANDLE,
     516                                                MPFROMSHORT(x), MPVOID);
     517          if (!info) {
     518            Runtime_Error(pszSrcFile, __LINE__, "LM_QUERYITEMHANDLE");
     519            break;
     520          }
     521          WinSetDlgItemText(hwnd, CMD_CL, info->cl);
     522          if (!(info->flags & 1023))
     523            WinCheckButton(hwnd, CMD_DEFAULT, TRUE);
     524          else {
     525            if (info->flags & FULLSCREEN)
     526              WinCheckButton(hwnd, CMD_FULLSCREEN, TRUE);
     527            else if (info->flags & MINIMIZED)
     528              WinCheckButton(hwnd, CMD_MINIMIZED, TRUE);
     529            else if (info->flags & MAXIMIZED)
     530              WinCheckButton(hwnd, CMD_MAXIMIZED, TRUE);
     531            else if (info->flags & INVISIBLE)
     532              WinCheckButton(hwnd, CMD_INVISIBLE, TRUE);
     533          }
     534          WinCheckButton(hwnd, CMD_PROMPT, ((info->flags & PROMPT) != 0));
     535          WinCheckButton(hwnd, CMD_KEEP, ((info->flags & KEEP) != 0));
     536          WinCheckButton(hwnd, CMD_ONCE, ((info->flags & ONCE) != 0));
     537          WinSetDlgItemText(hwnd, CMD_TITLE, info->title);
     538          {
     539            CHAR env[1002];
     540            ULONG size;
     541
     542            *env = 0;
     543            size = sizeof(env) - 1;
     544            if (PrfQueryProfileData(fmprof, FM3Str, info->cl, env, &size) &&
     545                *env)
     546              WinSetDlgItemText(hwnd, CMD_ENVIRON, env);
     547            else
     548              WinSetDlgItemText(hwnd, CMD_ENVIRON, NullStr);
     549          }
     550        }
     551        break;
     552      }
     553    }
     554    return 0;
     555
     556  case WM_COMMAND:
     557    switch (SHORT1FROMMP(mp1)) {
     558    case CMD_FIND:
    514559      {
    515         PFNWP oldproc;
    516 
    517         oldproc = WinSubclassWindow(WinWindowFromID(hwnd,CMD_CL),
    518                                     (PFNWP)CommandTextProc);
    519         if(oldproc)
    520           WinSetWindowPtr(WinWindowFromID(hwnd,CMD_CL),0,(PVOID)oldproc);
    521       }
    522       break;
    523 
    524     case WM_CONTROL:
    525       if(SHORT1FROMMP(mp1) == CMD_LISTBOX) {
    526         switch(SHORT2FROMMP(mp1)) {
    527           case LN_ENTER:
    528           case LN_SELECT:
    529             x = (SHORT)WinSendDlgItemMsg(hwnd,CMD_LISTBOX,
    530                                          LM_QUERYSELECTION,
    531                                          MPFROMSHORT(LIT_FIRST),
    532                                          MPVOID);
    533             if(x >= 0) {
    534               info = (LINKCMDS *)WinSendDlgItemMsg(hwnd,CMD_LISTBOX,
    535                                                    LM_QUERYITEMHANDLE,
    536                                                    MPFROMSHORT(x),
    537                                                    MPVOID);
    538               if(!info) {
    539                 Runtime_Error(pszSrcFile, __LINE__, "LM_QUERYITEMHANDLE");
    540                 break;
    541               }
    542               WinSetDlgItemText(hwnd,CMD_CL,info->cl);
    543               if(!(info->flags & 1023))
    544                 WinCheckButton(hwnd,CMD_DEFAULT,TRUE);
    545               else {
    546                 if(info->flags & FULLSCREEN)
    547                   WinCheckButton(hwnd,CMD_FULLSCREEN,TRUE);
    548                 else if(info->flags & MINIMIZED)
    549                   WinCheckButton(hwnd,CMD_MINIMIZED,TRUE);
    550                 else if(info->flags & MAXIMIZED)
    551                   WinCheckButton(hwnd,CMD_MAXIMIZED,TRUE);
    552                 else if(info->flags & INVISIBLE)
    553                   WinCheckButton(hwnd,CMD_INVISIBLE,TRUE);
    554               }
    555               WinCheckButton(hwnd,CMD_PROMPT,((info->flags & PROMPT) != 0));
    556               WinCheckButton(hwnd,CMD_KEEP,((info->flags & KEEP) != 0));
    557               WinCheckButton(hwnd,CMD_ONCE,((info->flags & ONCE) != 0));
    558               WinSetDlgItemText(hwnd,CMD_TITLE,info->title);
    559               {
    560                 CHAR  env[1002];
    561                 ULONG size;
    562 
    563                 *env = 0;
    564                 size = sizeof(env) - 1;
    565                 if(PrfQueryProfileData(fmprof,FM3Str,info->cl,env,&size) &&
    566                    *env)
    567                   WinSetDlgItemText(hwnd,CMD_ENVIRON,env);
    568                 else
    569                   WinSetDlgItemText(hwnd,CMD_ENVIRON,NullStr);
    570               }
    571             }
    572             break;
    573         }
    574       }
    575       return 0;
    576 
    577     case WM_COMMAND:
    578       switch(SHORT1FROMMP(mp1)) {
    579         case CMD_FIND:
    580           {
    581             CHAR filename[CCHMAXPATH + 9];
    582 
    583             *filename = 0;
    584             if(insert_filename(hwnd,filename,2,FALSE) && *filename) {
    585               strcat(filename," %a");
    586               WinSetDlgItemText(hwnd,CMD_CL,filename);
    587             }
    588           }
    589           break;
    590 
    591         case CMD_REORDER:
    592           if(!cmdhead || !cmdhead->next) {
    593             Runtime_Error(pszSrcFile, __LINE__, "no cmd");
    594             break;
    595           }
    596           if(WinDlgBox(HWND_DESKTOP,hwnd,ReOrderProc,FM3ModHandle,
    597                        RE_FRAME,MPVOID)) {
    598             WinSendDlgItemMsg(hwnd,
    599                               CMD_LISTBOX,
    600                               LM_DELETEALL,
    601                               MPVOID,
    602                               MPVOID);
    603             WinSetDlgItemText(hwnd,
    604                               CMD_CL,
    605                               NullStr);
    606             WinSetDlgItemText(hwnd,
    607                               CMD_TITLE,
    608                               NullStr);
    609             info = cmdhead;
    610             while(info) {
    611               x = (SHORT)WinSendDlgItemMsg(hwnd,
    612                                            CMD_LISTBOX,
    613                                            LM_INSERTITEM,
    614                                            MPFROM2SHORT(LIT_END,0),
    615                                            MPFROMP(info->title));
    616               if(x >= 0)
    617                 WinSendDlgItemMsg(hwnd,
    618                                   CMD_LISTBOX,
    619                                   LM_SETITEMHANDLE,
    620                                   MPFROMSHORT(x),
    621                                   MPFROMP(info));
    622               info = info->next;
    623             }
     560        CHAR filename[CCHMAXPATH + 9];
     561
     562        *filename = 0;
     563        if (insert_filename(hwnd, filename, 2, FALSE) && *filename) {
     564          strcat(filename, " %a");
     565          WinSetDlgItemText(hwnd, CMD_CL, filename);
     566        }
     567      }
     568      break;
     569
     570    case CMD_REORDER:
     571      if (!cmdhead || !cmdhead->next) {
     572        Runtime_Error(pszSrcFile, __LINE__, "no cmd");
     573        break;
     574      }
     575      if (WinDlgBox(HWND_DESKTOP, hwnd, ReOrderProc, FM3ModHandle,
     576                    RE_FRAME, MPVOID)) {
     577        WinSendDlgItemMsg(hwnd, CMD_LISTBOX, LM_DELETEALL, MPVOID, MPVOID);
     578        WinSetDlgItemText(hwnd, CMD_CL, NullStr);
     579        WinSetDlgItemText(hwnd, CMD_TITLE, NullStr);
     580        info = cmdhead;
     581        while (info) {
     582          x = (SHORT) WinSendDlgItemMsg(hwnd,
     583                                        CMD_LISTBOX,
     584                                        LM_INSERTITEM,
     585                                        MPFROM2SHORT(LIT_END, 0),
     586                                        MPFROMP(info->title));
     587          if (x >= 0)
     588            WinSendDlgItemMsg(hwnd,
     589                              CMD_LISTBOX,
     590                              LM_SETITEMHANDLE,
     591                              MPFROMSHORT(x), MPFROMP(info));
     592          info = info->next;
     593        }
     594        WinSendDlgItemMsg(hwnd,
     595                          CMD_LISTBOX,
     596                          LM_SELECTITEM, MPFROMSHORT(0), MPFROMSHORT(TRUE));
     597        WinCheckButton(hwnd, CMD_DEFAULT, TRUE);
     598        WinCheckButton(hwnd, CMD_PROMPT, FALSE);
     599        WinCheckButton(hwnd, CMD_ONCE, FALSE);
     600        save_commands();
     601      }
     602      break;
     603
     604    case DID_OK:
     605      {
     606        x = (SHORT) WinSendDlgItemMsg(hwnd,
     607                                      CMD_LISTBOX,
     608                                      LM_QUERYSELECTION, MPVOID, MPVOID);
     609        if (x == LIT_NONE)
     610          x = (SHORT) WinSendDlgItemMsg(hwnd,
     611                                        CMD_LISTBOX,
     612                                        LM_SELECTITEM,
     613                                        MPFROMSHORT(0), MPFROMSHORT(TRUE));
     614      }
     615      {
     616        COMMAND temp;
     617
     618        memset(&temp, 0, sizeof(COMMAND));
     619        WinQueryDlgItemText(hwnd, CMD_CL, sizeof(temp.cl), temp.cl);
     620        bstrip(temp.cl);
     621        WinQueryDlgItemText(hwnd, CMD_TITLE, sizeof(temp.title), temp.title);
     622        if (WinQueryButtonCheckstate(hwnd, CMD_DEFAULT))
     623          temp.flags = 0;
     624        else if (WinQueryButtonCheckstate(hwnd, CMD_FULLSCREEN))
     625          temp.flags = FULLSCREEN;
     626        else if (WinQueryButtonCheckstate(hwnd, CMD_MINIMIZED))
     627          temp.flags = MINIMIZED;
     628        else if (WinQueryButtonCheckstate(hwnd, CMD_MAXIMIZED))
     629          temp.flags = MAXIMIZED;
     630        else if (WinQueryButtonCheckstate(hwnd, CMD_INVISIBLE))
     631          temp.flags = INVISIBLE;
     632        if (WinQueryButtonCheckstate(hwnd, CMD_KEEP))
     633          temp.flags |= KEEP;
     634        if (WinQueryButtonCheckstate(hwnd, CMD_PROMPT))
     635          temp.flags |= PROMPT;
     636        if (WinQueryButtonCheckstate(hwnd, CMD_ONCE))
     637          temp.flags |= ONCE;
     638        info = add_command(&temp);
     639        if (!info)
     640          WinDismissDlg(hwnd, 0);
     641        /*{
     642           /* saymsg(MB_ENTER,
     643           hwnd,
     644           GetPString(IDS_ERRORTEXT),
     645           // GetPString(IDS_CANTADDCOMMANDTEXT),
     646           "Can't add %s to command list", temp.title); // fixme to be in fm3dll.str
     647           }  */
     648        else {
     649          CHAR env[1002];
     650
     651          *env = 0;
     652          WinQueryDlgItemText(hwnd, CMD_ENVIRON, 1000, env);
     653          bstripcr(env);
     654          if (*env) {
     655            PrfWriteProfileString(fmprof, FM3Str, temp.cl, env);
     656          }
     657          x = (SHORT) WinSendDlgItemMsg(hwnd,
     658                                        CMD_LISTBOX,
     659                                        LM_INSERTITEM,
     660                                        MPFROM2SHORT(LIT_END, 0),
     661                                        MPFROMP(temp.title));
     662          if (x >= 0) {
     663            WinSendDlgItemMsg(hwnd,
     664                              CMD_LISTBOX,
     665                              LM_SETITEMHANDLE,
     666                              MPFROMSHORT(x), MPFROMP(info));
    624667            WinSendDlgItemMsg(hwnd,
    625668                              CMD_LISTBOX,
    626669                              LM_SELECTITEM,
    627                               MPFROMSHORT(0),
    628                               MPFROMSHORT(TRUE));
    629             WinCheckButton(hwnd,
    630                            CMD_DEFAULT,
    631                            TRUE);
    632             WinCheckButton(hwnd,
    633                            CMD_PROMPT,
    634                            FALSE);
    635             WinCheckButton(hwnd,
    636                            CMD_ONCE,
    637                            FALSE);
     670                              MPFROMSHORT(x), MPFROMSHORT(TRUE));
    638671            save_commands();
    639672          }
    640           break;
    641 
    642           case DID_OK:
    643          {
    644             x = (SHORT)WinSendDlgItemMsg(hwnd,
    645                                            CMD_LISTBOX,
    646                                            LM_QUERYSELECTION,
    647                                            MPVOID,
    648                                            MPVOID);
    649             if(x==LIT_NONE)
    650              x = (SHORT) WinSendDlgItemMsg(hwnd,
    651                                            CMD_LISTBOX,
    652                                           LM_SELECTITEM,
    653                                           MPFROMSHORT(0),
    654                                           MPFROMSHORT(TRUE));
    655             }
    656           {
    657             COMMAND temp;
    658 
    659             memset(&temp,0,sizeof(COMMAND));
    660             WinQueryDlgItemText(hwnd,CMD_CL,sizeof(temp.cl),temp.cl);
    661             bstrip(temp.cl);
    662             WinQueryDlgItemText(hwnd,CMD_TITLE,sizeof(temp.title),temp.title);
    663             if(WinQueryButtonCheckstate(hwnd,CMD_DEFAULT))
    664               temp.flags = 0;
    665             else if(WinQueryButtonCheckstate(hwnd,CMD_FULLSCREEN))
    666               temp.flags = FULLSCREEN;
    667             else if(WinQueryButtonCheckstate(hwnd,CMD_MINIMIZED))
    668               temp.flags = MINIMIZED;
    669             else if(WinQueryButtonCheckstate(hwnd,CMD_MAXIMIZED))
    670               temp.flags = MAXIMIZED;
    671             else if(WinQueryButtonCheckstate(hwnd,CMD_INVISIBLE))
    672               temp.flags = INVISIBLE;
    673             if(WinQueryButtonCheckstate(hwnd,CMD_KEEP))
    674               temp.flags |= KEEP;
    675             if(WinQueryButtonCheckstate(hwnd,CMD_PROMPT))
    676               temp.flags |= PROMPT;
    677             if(WinQueryButtonCheckstate(hwnd,CMD_ONCE))
    678               temp.flags |= ONCE;
    679             info = add_command(&temp);
    680             if (!info)
    681                 WinDismissDlg(hwnd,0);
    682                 /*{
    683              /* saymsg(MB_ENTER,
    684                      hwnd,
    685                      GetPString(IDS_ERRORTEXT),
    686                      // GetPString(IDS_CANTADDCOMMANDTEXT),
    687                      "Can't add %s to command list", temp.title);       // fixme to be in fm3dll.str
    688             }  */
    689             else {
    690               CHAR env[1002];
    691 
    692               *env = 0;
    693               WinQueryDlgItemText(hwnd,CMD_ENVIRON,1000,env);
    694               bstripcr(env);
    695               if (*env) {
    696                 PrfWriteProfileString(fmprof,
    697                                       FM3Str,
    698                                       temp.cl,
    699                                       env);
    700               }
    701               x = (SHORT)WinSendDlgItemMsg(hwnd,
    702                                            CMD_LISTBOX,
    703                                            LM_INSERTITEM,
    704                                            MPFROM2SHORT(LIT_END,0),
    705                                            MPFROMP(temp.title));
    706               if(x >= 0) {
    707                 WinSendDlgItemMsg(hwnd,
    708                                   CMD_LISTBOX,
    709                                   LM_SETITEMHANDLE,
    710                                   MPFROMSHORT(x),
    711                                   MPFROMP(info));
    712                 WinSendDlgItemMsg(hwnd,
    713                                   CMD_LISTBOX,
    714                                   LM_SELECTITEM,
    715                                   MPFROMSHORT(x),
    716                                   MPFROMSHORT(TRUE));
    717                 save_commands();
    718               }
    719             }
    720           }
    721           x = (SHORT)WinSendDlgItemMsg(hwnd,
    722                                        CMD_LISTBOX,
    723                                        LM_QUERYSELECTION,
    724                                        MPFROMSHORT(LIT_FIRST),
    725                                        MPVOID);
    726           WinDismissDlg(hwnd,0);
    727           break;
    728 
    729         case DID_CANCEL:
    730           WinDismissDlg(hwnd,0);
    731           break;
    732 
    733         case IDM_HELP:
    734           if(hwndHelp)
    735             WinSendMsg(hwndHelp,
    736                        HM_DISPLAY_HELP,
    737                        MPFROM2SHORT(HELP_COMMAND,0),
    738                        MPFROMSHORT(HM_RESOURCEID));
    739           break;
    740 
    741         case CMD_ADD:
    742           {
    743             COMMAND temp;
    744 
    745             memset(&temp,0,sizeof(COMMAND));
    746             WinQueryDlgItemText(hwnd,CMD_CL,sizeof(temp.cl),temp.cl);
    747             bstrip(temp.cl);
    748             WinQueryDlgItemText(hwnd,CMD_TITLE,sizeof(temp.title),temp.title);
    749             if(WinQueryButtonCheckstate(hwnd,CMD_DEFAULT))
    750               temp.flags = 0;
    751             else if(WinQueryButtonCheckstate(hwnd,CMD_FULLSCREEN))
    752               temp.flags = FULLSCREEN;
    753             else if(WinQueryButtonCheckstate(hwnd,CMD_MINIMIZED))
    754               temp.flags = MINIMIZED;
    755             else if(WinQueryButtonCheckstate(hwnd,CMD_MAXIMIZED))
    756               temp.flags = MAXIMIZED;
    757             else if(WinQueryButtonCheckstate(hwnd,CMD_INVISIBLE))
    758               temp.flags = INVISIBLE;
    759             if(WinQueryButtonCheckstate(hwnd,CMD_KEEP))
    760               temp.flags |= KEEP;
    761             if(WinQueryButtonCheckstate(hwnd,CMD_PROMPT))
    762               temp.flags |= PROMPT;
    763             if(WinQueryButtonCheckstate(hwnd,CMD_ONCE))
    764               temp.flags |= ONCE;
    765             info = add_command(&temp);
    766             if (!info) {
    767               saymsg(MB_ENTER,
    768                      hwnd,
    769                      GetPString(IDS_ERRORTEXT),
    770                      // GetPString(IDS_CANTADDCOMMANDTEXT),
    771                      "Can't add %s to command list It has a duplicate title", temp.title);      // fixme to be in fm3dll.str
    772             }
    773             else {
    774               CHAR env[1002];
    775 
    776               *env = 0;
    777               WinQueryDlgItemText(hwnd,CMD_ENVIRON,1000,env);
    778               bstripcr(env);
    779               if (*env) {
    780                 PrfWriteProfileString(fmprof,
    781                                       FM3Str,
    782                                       temp.cl,
    783                                       env);
    784               }
    785               x = (SHORT)WinSendDlgItemMsg(hwnd,
    786                                            CMD_LISTBOX,
    787                                            LM_INSERTITEM,
    788                                            MPFROM2SHORT(LIT_END,0),
    789                                            MPFROMP(temp.title));
    790               if(x >= 0) {
    791                 WinSendDlgItemMsg(hwnd,
    792                                   CMD_LISTBOX,
    793                                   LM_SETITEMHANDLE,
    794                                   MPFROMSHORT(x),
    795                                   MPFROMP(info));
    796                 WinSendDlgItemMsg(hwnd,
    797                                   CMD_LISTBOX,
    798                                   LM_SELECTITEM,
    799                                   MPFROMSHORT(x),
    800                                   MPFROMSHORT(TRUE));
    801                 save_commands();
    802               }
    803             }
    804           }
    805           break;
    806 
    807         case CMD_DELETE:
    808           {
    809             CHAR temp[34];
    810 
    811             WinQueryDlgItemText(hwnd,CMD_TITLE,34,temp);
    812             bstrip(temp);
    813             if (!kill_command(temp))
    814               Runtime_Error(pszSrcFile, __LINE__, "kill_command");
    815             else {
    816               x = (SHORT)WinSendDlgItemMsg(hwnd,
    817                                            CMD_LISTBOX,
    818                                            LM_QUERYSELECTION,
    819                                            MPFROMSHORT(LIT_FIRST),
    820                                            MPVOID);
    821               if(x >= 0) {
    822                 WinSendDlgItemMsg(hwnd,
    823                                   CMD_LISTBOX,
    824                                   LM_DELETEITEM,
    825                                   MPFROMSHORT(x),
    826                                   MPVOID);
    827                 WinSendDlgItemMsg(hwnd,
    828                                   CMD_LISTBOX,
    829                                   LM_SELECTITEM,
    830                                   MPFROMSHORT(LIT_NONE),
    831                                   MPFROMSHORT(FALSE));
    832               }
    833               save_commands();
    834             }
    835           }
    836           break;
    837         case CMD_REPLACE:
    838           {
    839             CHAR temp[34];
    840 
    841             WinQueryDlgItemText(hwnd,CMD_TITLE,34,temp);
    842             bstrip(temp);
    843             if (!kill_command(temp))
    844               Runtime_Error(pszSrcFile, __LINE__, "kill_command");
    845             else {
    846               x = (SHORT)WinSendDlgItemMsg(hwnd,
    847                                            CMD_LISTBOX,
    848                                            LM_QUERYSELECTION,
    849                                            MPFROMSHORT(LIT_FIRST),
    850                                            MPVOID);
    851               if(x >= 0) {
    852                 WinSendDlgItemMsg(hwnd,
    853                                   CMD_LISTBOX,
    854                                   LM_DELETEITEM,
    855                                   MPFROMSHORT(x),
    856                                   MPVOID);
    857                 WinSendDlgItemMsg(hwnd,
    858                                   CMD_LISTBOX,
    859                                   LM_SELECTITEM,
    860                                   MPFROMSHORT(LIT_NONE),
    861                                   MPFROMSHORT(FALSE));
    862               }
    863               save_commands();
    864             }
    865           }
    866           {
    867             COMMAND temp;
    868 
    869             memset(&temp,0,sizeof(COMMAND));
    870             WinQueryDlgItemText(hwnd,CMD_CL,sizeof(temp.cl),temp.cl);
    871             bstrip(temp.cl);
    872             WinQueryDlgItemText(hwnd,CMD_TITLE,sizeof(temp.title),temp.title);
    873             if(WinQueryButtonCheckstate(hwnd,CMD_DEFAULT))
    874               temp.flags = 0;
    875             else if(WinQueryButtonCheckstate(hwnd,CMD_FULLSCREEN))
    876               temp.flags = FULLSCREEN;
    877             else if(WinQueryButtonCheckstate(hwnd,CMD_MINIMIZED))
    878               temp.flags = MINIMIZED;
    879             else if(WinQueryButtonCheckstate(hwnd,CMD_MAXIMIZED))
    880               temp.flags = MAXIMIZED;
    881             else if(WinQueryButtonCheckstate(hwnd,CMD_INVISIBLE))
    882               temp.flags = INVISIBLE;
    883             if(WinQueryButtonCheckstate(hwnd,CMD_KEEP))
    884               temp.flags |= KEEP;
    885             if(WinQueryButtonCheckstate(hwnd,CMD_PROMPT))
    886               temp.flags |= PROMPT;
    887             if(WinQueryButtonCheckstate(hwnd,CMD_ONCE))
    888               temp.flags |= ONCE;
    889             info = add_command(&temp);
    890             if (!info) {
    891               saymsg(MB_ENTER,
    892                      hwnd,
    893                      GetPString(IDS_ERRORTEXT),
    894                      // GetPString(IDS_CANTADDCOMMANDTEXT),
    895                      "Can't add %s to command list", temp.title);       // fixme to be in fm3dll.str
    896             }
    897             else {
    898               CHAR env[1002];
    899 
    900               *env = 0;
    901               WinQueryDlgItemText(hwnd,CMD_ENVIRON,1000,env);
    902               bstripcr(env);
    903               if (*env) {
    904                 PrfWriteProfileString(fmprof,
    905                                       FM3Str,
    906                                       temp.cl,
    907                                       env);
    908               }
    909               x = (SHORT)WinSendDlgItemMsg(hwnd,
    910                                            CMD_LISTBOX,
    911                                            LM_INSERTITEM,
    912                                            MPFROM2SHORT(LIT_END,0),
    913                                            MPFROMP(temp.title));
    914               if(x >= 0) {
    915                 WinSendDlgItemMsg(hwnd,
    916                                   CMD_LISTBOX,
    917                                   LM_SETITEMHANDLE,
    918                                   MPFROMSHORT(x),
    919                                   MPFROMP(info));
    920                 WinSendDlgItemMsg(hwnd,
    921                                   CMD_LISTBOX,
    922                                   LM_SELECTITEM,
    923                                   MPFROMSHORT(x),
    924                                   MPFROMSHORT(TRUE));
    925                 save_commands();
    926               }
    927             }
    928           }
    929           break;
    930       }
    931       return 0;
    932   }
    933   return WinDefDlgProc(hwnd,msg,mp1,mp2);
    934 }
    935 
    936 
    937 VOID RunCommand (HWND hwnd,INT cx)
    938 {
    939   INT          x;
    940   CHAR       **list;
    941   LINKCMDS    *info;
     673        }
     674      }
     675      x = (SHORT) WinSendDlgItemMsg(hwnd,
     676                                    CMD_LISTBOX,
     677                                    LM_QUERYSELECTION,
     678                                    MPFROMSHORT(LIT_FIRST), MPVOID);
     679      WinDismissDlg(hwnd, 0);
     680      break;
     681
     682    case DID_CANCEL:
     683      WinDismissDlg(hwnd, 0);
     684      break;
     685
     686    case IDM_HELP:
     687      if (hwndHelp)
     688        WinSendMsg(hwndHelp,
     689                   HM_DISPLAY_HELP,
     690                   MPFROM2SHORT(HELP_COMMAND, 0), MPFROMSHORT(HM_RESOURCEID));
     691      break;
     692
     693    case CMD_ADD:
     694      {
     695        COMMAND temp;
     696
     697        memset(&temp, 0, sizeof(COMMAND));
     698        WinQueryDlgItemText(hwnd, CMD_CL, sizeof(temp.cl), temp.cl);
     699        bstrip(temp.cl);
     700        WinQueryDlgItemText(hwnd, CMD_TITLE, sizeof(temp.title), temp.title);
     701        if (WinQueryButtonCheckstate(hwnd, CMD_DEFAULT))
     702          temp.flags = 0;
     703        else if (WinQueryButtonCheckstate(hwnd, CMD_FULLSCREEN))
     704          temp.flags = FULLSCREEN;
     705        else if (WinQueryButtonCheckstate(hwnd, CMD_MINIMIZED))
     706          temp.flags = MINIMIZED;
     707        else if (WinQueryButtonCheckstate(hwnd, CMD_MAXIMIZED))
     708          temp.flags = MAXIMIZED;
     709        else if (WinQueryButtonCheckstate(hwnd, CMD_INVISIBLE))
     710          temp.flags = INVISIBLE;
     711        if (WinQueryButtonCheckstate(hwnd, CMD_KEEP))
     712          temp.flags |= KEEP;
     713        if (WinQueryButtonCheckstate(hwnd, CMD_PROMPT))
     714          temp.flags |= PROMPT;
     715        if (WinQueryButtonCheckstate(hwnd, CMD_ONCE))
     716          temp.flags |= ONCE;
     717        info = add_command(&temp);
     718        if (!info) {
     719          saymsg(MB_ENTER, hwnd, GetPString(IDS_ERRORTEXT),
     720                 // GetPString(IDS_CANTADDCOMMANDTEXT),
     721                 "Can't add %s to command list It has a duplicate title", temp.title);  // fixme to be in fm3dll.str
     722        }
     723        else {
     724          CHAR env[1002];
     725
     726          *env = 0;
     727          WinQueryDlgItemText(hwnd, CMD_ENVIRON, 1000, env);
     728          bstripcr(env);
     729          if (*env) {
     730            PrfWriteProfileString(fmprof, FM3Str, temp.cl, env);
     731          }
     732          x = (SHORT) WinSendDlgItemMsg(hwnd,
     733                                        CMD_LISTBOX,
     734                                        LM_INSERTITEM,
     735                                        MPFROM2SHORT(LIT_END, 0),
     736                                        MPFROMP(temp.title));
     737          if (x >= 0) {
     738            WinSendDlgItemMsg(hwnd,
     739                              CMD_LISTBOX,
     740                              LM_SETITEMHANDLE,
     741                              MPFROMSHORT(x), MPFROMP(info));
     742            WinSendDlgItemMsg(hwnd,
     743                              CMD_LISTBOX,
     744                              LM_SELECTITEM,
     745                              MPFROMSHORT(x), MPFROMSHORT(TRUE));
     746            save_commands();
     747          }
     748        }
     749      }
     750      break;
     751
     752    case CMD_DELETE:
     753      {
     754        CHAR temp[34];
     755
     756        WinQueryDlgItemText(hwnd, CMD_TITLE, 34, temp);
     757        bstrip(temp);
     758        if (!kill_command(temp))
     759          Runtime_Error(pszSrcFile, __LINE__, "kill_command");
     760        else {
     761          x = (SHORT) WinSendDlgItemMsg(hwnd,
     762                                        CMD_LISTBOX,
     763                                        LM_QUERYSELECTION,
     764                                        MPFROMSHORT(LIT_FIRST), MPVOID);
     765          if (x >= 0) {
     766            WinSendDlgItemMsg(hwnd,
     767                              CMD_LISTBOX,
     768                              LM_DELETEITEM, MPFROMSHORT(x), MPVOID);
     769            WinSendDlgItemMsg(hwnd,
     770                              CMD_LISTBOX,
     771                              LM_SELECTITEM,
     772                              MPFROMSHORT(LIT_NONE), MPFROMSHORT(FALSE));
     773          }
     774          save_commands();
     775        }
     776      }
     777      break;
     778    case CMD_REPLACE:
     779      {
     780        CHAR temp[34];
     781
     782        WinQueryDlgItemText(hwnd, CMD_TITLE, 34, temp);
     783        bstrip(temp);
     784        if (!kill_command(temp))
     785          Runtime_Error(pszSrcFile, __LINE__, "kill_command");
     786        else {
     787          x = (SHORT) WinSendDlgItemMsg(hwnd,
     788                                        CMD_LISTBOX,
     789                                        LM_QUERYSELECTION,
     790                                        MPFROMSHORT(LIT_FIRST), MPVOID);
     791          if (x >= 0) {
     792            WinSendDlgItemMsg(hwnd,
     793                              CMD_LISTBOX,
     794                              LM_DELETEITEM, MPFROMSHORT(x), MPVOID);
     795            WinSendDlgItemMsg(hwnd,
     796                              CMD_LISTBOX,
     797                              LM_SELECTITEM,
     798                              MPFROMSHORT(LIT_NONE), MPFROMSHORT(FALSE));
     799          }
     800          save_commands();
     801        }
     802      }
     803      {
     804        COMMAND temp;
     805
     806        memset(&temp, 0, sizeof(COMMAND));
     807        WinQueryDlgItemText(hwnd, CMD_CL, sizeof(temp.cl), temp.cl);
     808        bstrip(temp.cl);
     809        WinQueryDlgItemText(hwnd, CMD_TITLE, sizeof(temp.title), temp.title);
     810        if (WinQueryButtonCheckstate(hwnd, CMD_DEFAULT))
     811          temp.flags = 0;
     812        else if (WinQueryButtonCheckstate(hwnd, CMD_FULLSCREEN))
     813          temp.flags = FULLSCREEN;
     814        else if (WinQueryButtonCheckstate(hwnd, CMD_MINIMIZED))
     815          temp.flags = MINIMIZED;
     816        else if (WinQueryButtonCheckstate(hwnd, CMD_MAXIMIZED))
     817          temp.flags = MAXIMIZED;
     818        else if (WinQueryButtonCheckstate(hwnd, CMD_INVISIBLE))
     819          temp.flags = INVISIBLE;
     820        if (WinQueryButtonCheckstate(hwnd, CMD_KEEP))
     821          temp.flags |= KEEP;
     822        if (WinQueryButtonCheckstate(hwnd, CMD_PROMPT))
     823          temp.flags |= PROMPT;
     824        if (WinQueryButtonCheckstate(hwnd, CMD_ONCE))
     825          temp.flags |= ONCE;
     826        info = add_command(&temp);
     827        if (!info) {
     828          saymsg(MB_ENTER, hwnd, GetPString(IDS_ERRORTEXT),
     829                 // GetPString(IDS_CANTADDCOMMANDTEXT),
     830                 "Can't add %s to command list", temp.title);   // fixme to be in fm3dll.str
     831        }
     832        else {
     833          CHAR env[1002];
     834
     835          *env = 0;
     836          WinQueryDlgItemText(hwnd, CMD_ENVIRON, 1000, env);
     837          bstripcr(env);
     838          if (*env) {
     839            PrfWriteProfileString(fmprof, FM3Str, temp.cl, env);
     840          }
     841          x = (SHORT) WinSendDlgItemMsg(hwnd,
     842                                        CMD_LISTBOX,
     843                                        LM_INSERTITEM,
     844                                        MPFROM2SHORT(LIT_END, 0),
     845                                        MPFROMP(temp.title));
     846          if (x >= 0) {
     847            WinSendDlgItemMsg(hwnd,
     848                              CMD_LISTBOX,
     849                              LM_SETITEMHANDLE,
     850                              MPFROMSHORT(x), MPFROMP(info));
     851            WinSendDlgItemMsg(hwnd,
     852                              CMD_LISTBOX,
     853                              LM_SELECTITEM,
     854                              MPFROMSHORT(x), MPFROMSHORT(TRUE));
     855            save_commands();
     856          }
     857        }
     858      }
     859      break;
     860    }
     861    return 0;
     862  }
     863  return WinDefDlgProc(hwnd, msg, mp1, mp2);
     864}
     865
     866VOID RunCommand(HWND hwnd, INT cx)
     867{
     868  INT x;
     869  CHAR **list;
     870  LINKCMDS *info;
    942871
    943872  list = BuildList(hwnd);
    944   if(!list || !list[0])
     873  if (!list || !list[0])
    945874    return;
    946875  x = 0;
    947876  info = cmdhead;
    948   while(info) {
     877  while (info) {
    949878    x++;
    950     if(x == cx)
     879    if (x == cx)
    951880      break;
    952881    info = info->next;
    953882  }
    954   if(info) {
    955 
    956     INT   flags;
     883  if (info) {
     884
     885    INT flags;
    957886
    958887    x--;
    959888    flags = info->flags;
    960     if(!(flags & FULLSCREEN))
     889    if (!(flags & FULLSCREEN))
    961890      flags |= WINDOWED;
    962     if(flags & KEEP)
     891    if (flags & KEEP)
    963892      flags |= SEPARATEKEEP;
    964893    else
    965894      flags |= SEPARATE;
    966895    flags &= ~(KEEP | DIEAFTER);
    967     if((flags & ONCE) && list && list[0]) {
    968 
    969       CHAR  *fakelist[2];
    970       INT    cntr;
     896    if ((flags & ONCE) && list && list[0]) {
     897
     898      CHAR *fakelist[2];
     899      INT cntr;
    971900
    972901      flags &= (~ONCE);
    973       for(cntr = 0;list[cntr];cntr++) {
     902      for (cntr = 0; list[cntr]; cntr++) {
    974903        *fakelist = list[cntr];
    975904        fakelist[1] = NULL;
    976905        ExecOnList(hwnd,
    977906                   info->cl,
    978                    flags,
    979                    NULL,
    980                    fakelist,
    981                    GetPString(IDS_EXECCMDTITLETEXT));
     907                   flags, NULL, fakelist, GetPString(IDS_EXECCMDTITLETEXT));
    982908      }
    983909    }
     
    985911      ExecOnList(hwnd,
    986912                 info->cl,
    987                  flags,
    988                  NULL,
    989                  list,
    990                  GetPString(IDS_EXECCMDTITLETEXT));
     913                 flags, NULL, list, GetPString(IDS_EXECCMDTITLETEXT));
    991914  }
    992915  FreeList(list);
     
    994917}
    995918
    996 
    997 VOID EditCommands (HWND hwnd)
     919VOID EditCommands(HWND hwnd)
    998920{
    999921  static CHAR stop = 0;
    1000922
    1001   if(stop)
     923  if (stop)
    1002924    return;
    1003925  stop++;
    1004   if(!cmdloaded)
     926  if (!cmdloaded)
    1005927    load_commands();
    1006928  WinDlgBox(HWND_DESKTOP,
    1007             hwnd,
    1008             CommandDlgProc,
    1009             FM3ModHandle,
    1010             CMD_FRAME,
    1011             MPFROMP(&hwnd));
     929            hwnd, CommandDlgProc, FM3ModHandle, CMD_FRAME, MPFROMP(&hwnd));
    1012930  stop = 0;
    1013931}
Note: See TracChangeset for help on using the changeset viewer.