From: sos AT prospect DOT com DOT ru (Sergey Okhapkin) Subject: What does it mean? 28 Jun 1998 03:18:08 -0700 Message-ID: <01BDA29D.2DCD33F0.cygnus.cygwin32.developers@sos> To: "'cygwin32-developers AT cygnus DOT com'" Hi! fhandler_disk_file::open() contains the following code: if ((os_being_run != winNT) && (!real_path.exec_p)) { DWORD done; char magic[2]; /* FIXME should we use /etc/magic ? */ magic[0] = magic[1] = magic[2] = '\0'; ReadFile (get_handle (), magic, 3, &done, 0); if (magic[0] == ':' && magic[1] == '\n') real_path.exec_p = 1; if (magic[0] == '#' && magic[1] == '!') real_path.exec_p = 1; if (flags & O_APPEND) SetFilePointer (get_handle(), 0, 0, FILE_END); else SetFilePointer (get_handle(), 0, 0, FILE_BEGIN); } The code seems to me buggy! Why we do not check file magic and do not set file pointer on NT? Shouldn't the code be something like: if (!real_path.exec_p) { DWORD done; char magic[2]; /* FIXME should we use /etc/magic ? */ magic[0] = magic[1] = magic[2] = '\0'; ReadFile (get_handle (), magic, 3, &done, 0); if (magic[0] == ':' && magic[1] == '\n') real_path.exec_p = 1; if (magic[0] == '#' && magic[1] == '!') real_path.exec_p = 1; } if (flags & O_APPEND) SetFilePointer (get_handle(), 0, 0, FILE_END); else SetFilePointer (get_handle(), 0, 0, FILE_BEGIN); -- Sergey Okhapkin, http://www.lexa.ru/sos Moscow, Russia