From 76847765fba6fc84ed457df4e8d047e3770c661a Mon Sep 17 00:00:00 2001 From: Basile Burg Date: Sun, 20 May 2018 16:23:35 +0200 Subject: [PATCH] fix #325 - Same module can be opened twice --- src/ce_messages.pas | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/ce_messages.pas b/src/ce_messages.pas index a468288e..326e4572 100644 --- a/src/ce_messages.pas +++ b/src/ce_messages.pas @@ -1153,12 +1153,6 @@ begin ((aMessage[i] = '(') or (aMessage[i] = ':') or ((aMessage[i] = '-') and (i < aMessage.length-5) and (aMessage[i..i+5] = '-mixin'))) then begin - // absolute fname - if ident.fileExists then - begin - getMultiDocHandler.openDocument(ident); - exit(true); - end; // relative fname if project file is the base path to a rel. fname absName := ExpandFileName(ident); if absName.fileExists then @@ -1166,6 +1160,12 @@ begin getMultiDocHandler.openDocument(absName); exit(true); end; + // absolute fname + if ident.fileExists then + begin + getMultiDocHandler.openDocument(ident); + exit(true); + end; // if fname relative to project path if fProj <> nil then begin @@ -1176,6 +1176,20 @@ begin exit(true); end; end; + // finally try using pwd ... + absName := expandFilenameEx(GetCurrentDir, ident); + if absName.fileExists then + begin + getMultiDocHandler.openDocument(absName); + exit(true); + end; + // ... and $HOME + absName := expandFilenameEx(GetUserDir, ident); + if absName.fileExists then + begin + getMultiDocHandler.openDocument(absName); + exit(true); + end; end // @ else if aMessage[i] = '@' then