To: vim_dev@googlegroups.com Subject: Patch 8.2.4340 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.4340 Problem: Amiga: mch_can_exe() is not implemented. Solution: Implement mch_can_exe() for Amiga OS 4. (Ola Söder, closes #9731) Files: src/os_amiga.c *** ../vim-8.2.4339/src/os_amiga.c 2022-01-02 19:25:22.850078488 +0000 --- src/os_amiga.c 2022-02-10 19:58:21.968641177 +0000 *************** *** 891,898 **** int mch_can_exe(char_u *name, char_u **path, int use_path) { ! // TODO ! return -1; } /* --- 891,938 ---- int mch_can_exe(char_u *name, char_u **path, int use_path) { ! int exe = -1; ! #ifdef __amigaos4__ ! // Load file sections using elf.library or hunk.library. ! BPTR seg = LoadSeg(name); ! ! if (seg && GetSegListInfoTags(seg, GSLI_Native, NULL, TAG_DONE) != ! GetSegListInfoTags(seg, GSLI_68KHUNK, NULL, TAG_DONE)) ! { ! // Test if file permissions allow execution. ! struct ExamineData *exd = ExamineObjectTags(EX_StringNameInput, name); ! ! exe = (exd && !(exd->Protection & EXDF_NO_EXECUTE)) ? 1 : 0; ! FreeDosObject(DOS_EXAMINEDATA, exd); ! } ! else ! { ! exe = 0; ! } ! ! UnLoadSeg(seg); ! ! // Search for executable in path if applicable. ! if (!exe && use_path) ! { ! // Save current working dir. ! BPTR cwd = GetCurrentDir(); ! struct PathNode *head = DupCmdPathList(NULL); ! ! // For each entry, recur to check for executable. ! for(struct PathNode *tail = head; !exe && tail; ! tail = (struct PathNode *) BADDR(tail->pn_Next)) ! { ! SetCurrentDir(tail->pn_Lock); ! exe = mch_can_exe(name, path, 0); ! } ! ! // Go back to where we were. ! FreeCmdPathList(head); ! SetCurrentDir(cwd); ! } ! #endif ! return exe; } /* *** ../vim-8.2.4339/src/version.c 2022-02-10 19:51:42.549569899 +0000 --- src/version.c 2022-02-10 19:59:44.940469864 +0000 *************** *** 748,749 **** --- 748,751 ---- { /* Add new patch number below this line */ + /**/ + 4340, /**/ -- How To Keep A Healthy Level Of Insanity: 15. Five days in advance, tell your friends you can't attend their party because you're not in the mood. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// \\\ \\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///