Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017 
<== Date ==> <== Thread ==>

Subject: Re: msi for windows IOC build
From: Andrew Johnson <anj@aps.anl.gov>
To: <ronaldo.mercado@diamond.ac.uk>, <tech-talk@aps.anl.gov>
Date: Wed, 28 Oct 2015 10:48:28 -0500
Hi Ronaldo,

On 10/28/2015 04:48 AM, ronaldo.mercado@diamond.ac.uk wrote:
> I am writing because while building an IOC for the PerkinElmer area detector module 2-3, I found that
> msi on windows expects ':' as path separator.  This behaviour does not allow to
> specify paths for "include" that reside on a different windows drive.
> 
> Has anyone else encountered this problem while using msi on windows? 

This has already been fixed in the version of msi that comes with 3.15.

> My proposal introduces a "-w" switch. The changes are pasted below (changes made against msi 1-5).

Since the path separator is OS-specific, there is no need for a
command-line switch to select it. Base defines a C macro via the
osiFileName.h header that gives the correct separator character for each
OS, but unfortunately versions of msi prior its inclusion in Base-3.15
weren't using it.

I'm attaching the change (against msi 1-7) for that fix; I'm currently
undecided whether to release another version of the stand-alone msi
extension that includes this.

- Andrew

-- 
Light thinks it travels faster than anything but it is wrong.
No matter how fast light travels, it finds the darkness has
always got there first, and is waiting for it.
    -- Terry Pratchett, Reaper Man
Index: msi.c
===================================================================
--- msi.c	13 May 2013 17:00:43 -0000	1.19
+++ msi.c	28 Oct 2015 15:43:44 -0000
@@ -26,6 +26,7 @@
 #include <macLib.h>
 #include <ellLib.h>
 #include <errlog.h>
+#include <osiFileName.h>
 
 #define MAX_BUFFER_SIZE 4096
 
@@ -303,16 +304,17 @@
     const char	*pdir;
     int		len;
     int		emptyName;
+    const char  sep = *OSI_PATH_LIST_SEPARATOR;
 
     pdir = path;
     /*an empty name at beginning, middle, or end means current directory*/
     while(pdir && *pdir) {
-	emptyName = ((*pdir == ':') ? 1 : 0);
+	emptyName = (*pdir == sep);
 	if(emptyName) ++pdir;
 	ppathNode = (pathNode *)calloc(1,sizeof(pathNode));
 	ellAdd(ppathList,&ppathNode->node);
 	if(!emptyName) {
-	    pcolon = strchr(pdir,':');
+	    pcolon = strchr(pdir, sep);
 	    len = (pcolon ? (pcolon - pdir) : strlen(pdir));
 	    if(len>0)  {
 	        ppathNode->directory = (char *)calloc(len+1,sizeof(char));

References:
msi for windows IOC build ronaldo.mercado

Navigate by Date:
Prev: Using V4 pvCommonCPP module with external boost library alan.greer
Next: RE: Subject: RE: To read single element from waveform record Gofron, Kazimierz
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017 
Navigate by Thread:
Prev: msi for windows IOC build ronaldo.mercado
Next: Using V4 pvCommonCPP module with external boost library alan.greer
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017 
ANJ, 16 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·