Changeset 3280 for trunk


Ignore:
Timestamp:
May 1, 2007, 8:15:31 PM (18 years ago)
Author:
bird
Message:

optimized.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/essentials/app-shells/bash/findcmd.c

    r3232 r3280  
    235235     int flags;
    236236{
    237 #if defined __WIN32__ || defined __OS2__
    238   char *res, *dotexe;
    239 
    240   dotexe = (char *)xmalloc (strlen (name) + 5);
    241   strcpy (dotexe, name);
    242   strcat (dotexe, ".exe");
    243   res = _find_user_command_internal (dotexe, flags);
    244   free (dotexe);
    245   if (res == 0)
    246     res = _find_user_command_internal (name, flags);
    247   return res;
    248 #else
     237#if defined (__OS2__)
     238  /* search for .exe first. */
     239  size_t len = strlen (name);
     240  if (len < sizeof (".exe") - 1
     241   || stricmp (name + (len - sizeof (".exe") - 1), ".exe") != 0)
     242    {
     243      char *res;
     244      char *dotexe = alloca (len + sizeof (".exe"));
     245      memcpy (dotexe, name, len);
     246      memcpy (dotexe + len, ".exe", sizeof (".exe"));
     247      res = _find_user_command_internal (dotexe, flags);
     248      if (res)
     249        return res;
     250    }
     251#endif /* __OS2__ */
    249252  return (_find_user_command_internal (name, flags));
    250 #endif
    251253}
    252254
Note: See TracChangeset for help on using the changeset viewer.