1. DOS/Windows installer 3.x

Suggestions for improvement of the DOS/Windows installer:

a) It should make a copy of "autoexec.bat" before changing that file.

b) It should assign _short_ path names to the environment variables in
   "autoexec.bat".
   I know, on an English Windows version Euphoria will be installed by
   default to the directory "C:\Programs\Euphoria". Since no part of
   this path has more than 8 characters, there will be no problem.
   But people might chose a diffwerent location, or for instance in
   German it is "Programme" instead of "Programs".

   So the installer should write to a German "autoexec.bat" e.g.
      SET EUDIR=C:\Progra~1\Euphoria
   instead of
      SET EUDIR=C:\Programme\Euphoria
   This is important, because plain DOS can only process short names.

   The following Windows function converts an existing long path name to
   a short name:
  
include machine.e
   include dll.e

   constant
      Kernel32 = open_dll("kernel32.dll"),
      GetShortPathName = define_c_func(Kernel32, "GetShortPathNameA",
                         {C_POINTER, C_POINTER, C_ULONG}, C_ULONG)

   global function short_pathname (sequence longName)
      sequence ret
      atom lpszLongName, lpszShortName
      integer bufferSize, shortLength

      ret = longName
      bufferSize = 1000
      lpszLongName = allocate_string(longName)
      lpszShortName = allocate(bufferSize)

      if lpszLongName and lpszShortName then
shortLength = c_func(GetShortPathName, {lpszLongName, lpszShortName,
         bufferSize})
         if shortLength >= bufferSize then
            free(lpszShortName)
            bufferSize = shortLength + 1
            shortLength = 0
            lpszShortName = allocate(bufferSize)
            if lpszShortName then
shortLength = c_func(GetShortPathName, {lpszLongName,
               lpszShortName, bufferSize})
            end if
         end if
         if shortLength then
            ret = peek({lpszShortName, shortLength})
         end if
         free(lpszShortName)
      end if

      return ret
   end function

   -- Demo
   sequence longName
   longName = "C:\\Programme\\Sprachen\\Euphoria"
   puts(1, short_pathname(longName))
   


   Maybe a program that uses a function like this can help.

Rob, if you want, you can also send me the setup script
(I assume you are using INNO setup), and I'll see what I can do.

Regards,
   Juergen

new topic     » topic index » view message » categorize

2. Re: DOS/Windows installer 3.x

Juergen Luethje wrote:
> Suggestions for improvement of the DOS/Windows installer:
> 
> a) It should make a copy of "autoexec.bat" before changing that file.
> 
> b) It should assign _short_ path names to the environment variables in
>    "autoexec.bat".
>    I know, on an English Windows version Euphoria will be installed by
>    default to the directory "C:\Programs\Euphoria". Since no part of
>    this path has more than 8 characters, there will be no problem.
>    But people might chose a diffwerent location, or for instance in
>    German it is "Programme" instead of "Programs".
> 
>    So the installer should write to a German "autoexec.bat" e.g.
>       SET EUDIR=C:\Progra~1\Euphoria
>    instead of
>       SET EUDIR=C:\Programme\Euphoria
>    This is important, because plain DOS can only process short names.
> 
>    The following Windows function converts an existing long path name to
>    a short name:
>
> <snip>
>
>    Maybe a program that uses a function like this can help.
> 
> Rob, if you want, you can also send me the setup script
> (I assume you are using INNO setup), and I'll see what I can do.

Thanks. My impression was that long PATH names worked with DOS
unless they had a blank in them, in which case there was a glitch
in some special situation. Maybe someone can test it.

Here's the INNO script that I currently use.
Alberto Gonzalez wrote it originally, but I've
changed it a lot since then. Note that on my machine
there's an extra directory, euphoria\htx. It contains
the true source of the docs, as well as some helper
Euphoria programs for the install. I should
release that eventually. It gets deleted after the
doc and htm files are generated.
Generating doc and html from htx during the install
saves a bit of space in the installation file.
I'm not sure if its worth it.

----------------------------------

; -- Inno Setup script to install Euphoria by Rapid Deployment Software
; --
;
--------------------------------------------------------------------------------
; -- Euphoria can be found as http://www.rapideuphoria.com
; -- The Inno Setup compiler can be found at http://www.innosetup.com and is
free
; --
;
--------------------------------------------------------------------------------
; -- Created by Alberto Gonzalez (of Nomadic Soul Concepts - NomSCon)
; -- EMail: al at nomscon.com
; --

[Setup]
AppName=Euphoria
AppVersion=3.0
AppVerName=Euphoria v3.0
AppPublisher=Rapid Deployment Software
AppPublisherURL=http://www.rapideuphoria.com
AppSupportURL=http://www.rapideuphoria.com
AppUpdatesURL=http://www.rapideuphoria.com
DefaultDirName=C:\EUPHORIA
DefaultGroupName=Euphoria
AllowNoIcons=yes
;AlwaysCreateUninstallIcon=yes
;LicenseFile=license.txt
; uncomment the following line if you want your installation to run on NT 3.51
too.
;MinVersion=4,3.51
DisableStartupPrompt=yes
DisableReadyPage=yes
OutputDir=..\Setup
OutputBaseFilename=e30setup
Compression=lzma
SolidCompression=yes
ChangesAssociations=yes
InfoBeforeFile=c:\euphoria\htx\before.txt
InfoAfterFile=c:\euphoria\htx\after.txt
Uninstallable=no

[Types]
Name: "full"; Description: "Full installation"
Name: "custom"; Description: "Custom installation"; Flags: iscustom

;[Components]
;Name: "main"; Description: "Core files (Interpreter and Translator)"; Types:
full; Flags: fixed
;Name: "docs"; Description: "Documentation and Tutorial"; Types: full; Flags:
fixed
;Name: "demos"; Description: "Demonstration programs"; Types: full; Flags: fixed
;Name; "source"; Description: "Source code"; Types: full; Flags: fixed
;[Tasks]
;Name: "associate"; Description: "&Associate file extensions";

[Dirs]
Name: "{app}\backup"; Flags: deleteafterinstall
Name: "{app}\HTML";
Name: "{app}\DOC";

[Files]
; Save all Euphoria subdirectories to backup subdirectory (can't use
recursesubdirs here)
; bin
Source: "{app}\bin\*.*"; DestDir: "{app}\backup\bin"; Flags: confirmoverwrite
external skipifsourcedoesntexist
; include
Source: "{app}\include\*.*"; DestDir: "{app}\backup\include"; Flags:
confirmoverwrite external skipifsourcedoesntexist
; doc
Source: "{app}\doc\*.*"; DestDir: "{app}\backup\doc"; Flags: confirmoverwrite
external skipifsourcedoesntexist
; htm
Source: "{app}\html\*.*"; DestDir: "{app}\backup\html"; Flags: confirmoverwrite
external skipifsourcedoesntexist
; tutorial
Source: "{app}\tutorial\*.*"; DestDir: "{app}\backup\tutorial"; Flags:
confirmoverwrite external skipifsourcedoesntexist
; demo
Source: "{app}\demo\*.*"; DestDir: "{app}\backup\demo"; Flags: confirmoverwrite
external skipifsourcedoesntexist
; demo\dos32
Source: "{app}\demo\dos32\*.*"; DestDir: "{app}\backup\demo\dos32"; Flags:
confirmoverwrite external skipifsourcedoesntexist
; demo\win32
Source: "{app}\demo\win32\*.*"; DestDir: "{app}\backup\demo\win32"; Flags:
external skipifsourcedoesntexist
; demo\langwar
Source: "{app}\demo\langwar\*.*"; DestDir: "{app}\backup\demo\langwar"; Flags:
external skipifsourcedoesntexist
; demo\bench
Source: "{app}\demo\bench\*.*"; DestDir: "{app}\backup\demo\bench"; Flags:
external skipifsourcedoesntexist
; source
Source: "{app}\source\*.*"; DestDir: "{app}\backup\source"; Flags: external
skipifsourcedoesntexist
; top level
Source: "{app}\readme.doc"; DestDir: "{app}\backup"; Flags: external
skipifsourcedoesntexist
Source: "{app}\readme.htm"; DestDir: "{app}\backup"; Flags: external
skipifsourcedoesntexist
Source: "{app}\License.txt"; DestDir: "{app}\backup"; Flags: external
skipifsourcedoesntexist

; Temporary Programs used to update AUTOEXEC.BAT in Windows 95, 98 and ME,
; create the docs, and exwc.exe (see [Run] section below)
Source: c:\euphoria\bin\exw.exe; DestDir: {tmp}; CopyMode:alwaysoverwrite; 
Flags: deleteafterinstall;
Source: c:\euphoria\bin\makecon.exw; DestDir: {tmp}; CopyMode: alwaysoverwrite;
Flags: deleteafterinstall;
Source: c:\euphoria\htx\setupae2.exw; DestDir: {tmp}; CopyMode: alwaysoverwrite;
Flags: deleteafterinstall;  MinVersion: 4.0,0
Source: c:\euphoria\htx\doc2.exw; DestDir: {tmp}; CopyMode: alwaysoverwrite;
Flags: deleteafterinstall;
Source: c:\euphoria\htx\combine2.exw; DestDir: {tmp}; CopyMode: alwaysoverwrite;
Flags: deleteafterinstall;

; Files to Install
;Root
Source: C:\EUPHORIA\FILE_ID.DIZ; DestDir: {app}; CopyMode: alwaysoverwrite;
Source: C:\EUPHORIA\License.txt; DestDir: {app}; CopyMode: alwaysoverwrite;
;BIN
Source: C:\EUPHORIA\BIN\EX.EXE; DestDir: {app}\BIN\; CopyMode: alwaysoverwrite;
Source: C:\EUPHORIA\BIN\EXW.EXE; DestDir: {app}\BIN\; CopyMode: alwaysoverwrite;
Source: C:\EUPHORIA\BIN\BACKEND.EXE; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\BACKENDW.EXE; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\SYNCOLOR.E; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\BIN.DOC; DestDir: {app}\BIN\; CopyMode: alwaysoverwrite;
Source: C:\EUPHORIA\BIN\KEYWORDS.E; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\ED.EX; DestDir: {app}\BIN\; CopyMode: alwaysoverwrite;
Source: C:\EUPHORIA\BIN\LINES.EX; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\ASCII.EX; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: "C:\EUPHORIA\BIN\KEY.EX"; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\GURU.EX; DestDir: {app}\BIN\; CopyMode: alwaysoverwrite;
Source: C:\EUPHORIA\BIN\WHERE.EX; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\SEARCH.EX; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\EPRINT.EX; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\LINES.BAT; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\GURU.BAT; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\EPRINT.BAT; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\ED.BAT; DestDir: {app}\BIN\; CopyMode: alwaysoverwrite;
MinVersion: 0,4.0
Source: C:\EUPHORIA\BIN\OLDED.BAT; DestDir: {app}\BIN\; DestName: ed.bat;
CopyMode: alwaysoverwrite; MinVersion: 4.0,0
Source: C:\EUPHORIA\BIN\CDGURU.BAT; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\SEARCH.BAT; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\ASCII.BAT; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\WHERE.BAT; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: "C:\EUPHORIA\BIN\KEY.BAT"; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\MAKE31.EXW; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\MAKECON.EXW; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\EUINC.ICO; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\EC.EXE; DestDir: {app}\BIN\; CopyMode: alwaysoverwrite;
Source: C:\EUPHORIA\BIN\ECW.EXE; DestDir: {app}\BIN\; CopyMode: alwaysoverwrite;
Source: C:\EUPHORIA\BIN\LE23P.EXE; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\CWC.EXE; DestDir: {app}\BIN\; CopyMode: alwaysoverwrite;
Source: C:\EUPHORIA\BIN\CWSTUB.EXE; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\LIBALLEG.A; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\BIND.BAT; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\BINDW.BAT; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\SHROUD.BAT; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\EC.A; DestDir: {app}\BIN\; CopyMode: alwaysoverwrite;
Source: C:\EUPHORIA\BIN\EC.LIB; DestDir: {app}\BIN\; CopyMode: alwaysoverwrite;
Source: C:\EUPHORIA\BIN\ECFASTFP.LIB; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\ECW.LIB; DestDir: {app}\BIN\; CopyMode: alwaysoverwrite;
Source: C:\EUPHORIA\BIN\ECWB.LIB; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\ECWL.LIB; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\BIN\EUPHORIA.ICO; DestDir: {app}\BIN\; CopyMode:
alwaysoverwrite;

;DEMO
Source: C:\EUPHORIA\DEMO\*.*; DestDir: {app}\DEMO\; CopyMode: alwaysoverwrite;
Flags: recursesubdirs;
;HTX
Source: C:\EUPHORIA\HTX\*.HTX; DestDir: {tmp}; CopyMode: alwaysoverwrite;
;INCLUDE
Source: C:\EUPHORIA\INCLUDE\*.E; DestDir: {app}\INCLUDE\; CopyMode:
alwaysoverwrite;
Source: C:\EUPHORIA\INCLUDE\EUPHORIA.H; DestDir: {app}\INCLUDE\; CopyMode:
alwaysoverwrite;
;SOURCE
Source: C:\EUPHORIA\source\*.*; DestDir: {app}\SOURCE\; CopyMode:
alwaysoverwrite;
;TUTORIAL
Source: C:\EUPHORIA\TUTORIAL\*.*; DestDir: {app}\TUTORIAL\; CopyMode:
alwaysoverwrite;

[INI]
; shortcut file to launch Rapid Euphoria website
Filename: {app}\RapidEuphoria.url; Section: InternetShortcut; Key: URL; String:
http://www.rapideuphoria.com

[Icons]
; Icons (shortcuts) to display in the Start menu
Name: {group}\Euphoria Manual; Filename: {app}\html\refman.htm
Name: {group}\Euphoria on the Web; Filename: {app}\RapidEuphoria.url
Name: {group}\Euphoria (Win); Filename: {app}\BIN\EXW.EXE
Name: {group}\Euphoria (Dos); Filename: {app}\BIN\EX.EXE
Name: {group}\Euphoria Editor; Filename: {app}\BIN\ED.bat


[UninstallDelete]
Type: files; Name: {app}\RapidEuphoria.url

[Registry]
;set EUDIR environment variable and add to PATH on NT/2000/XP machines
ROOT: HKCU; Subkey: "Environment"; ValueType: string; ValueName: "EUDIR";
ValueData: "{app}"; Flags: uninsdeletevalue; MinVersion: 0, 3.51
ROOT: HKCU; Subkey: "Environment"; ValueType: string; ValueName: "PATH";
ValueData: "{app}\BIN;{reg:HKCU\Environment,PATH}"; MinVersion: 0, 3.51

;associate .exw files to be called by EXW.exe
Root: HKCR; Subkey: ".exw"; ValueType: string; ValueName: ""; ValueData:
"EUWinApp"; Flags: uninsdeletevalue createvalueifdoesntexist
Root: HKCR; Subkey: "EUWinApp"; ValueType: string; ValueName: ""; ValueData:
"Euphoria Windows App"; Flags: uninsdeletekey createvalueifdoesntexist
Root: HKCR; Subkey: "EUWinApp\DefaultIcon"; ValueType: string; ValueName: "";
ValueData: "{app}\BIN\EXW.EXE,0"; Flags: uninsdeletekey createvalueifdoesntexist
Root: HKCR; Subkey: "EUWinApp\shell\open\command"; ValueType: string; ValueName:
""; ValueData: """{app}\BIN\EXW.EXE"" ""%1"""; Flags: uninsdeletekey
createvalueifdoesntexist

;associate .ex files to be called by EX.exe
Root: HKCR; Subkey: ".ex"; ValueType: string; ValueName: ""; ValueData:
"EUDOSApp"; Flags: uninsdeletevalue createvalueifdoesntexist
Root: HKCR; Subkey: "EUDOSApp"; ValueType: string; ValueName: ""; ValueData:
"Euphoria DOS App"; Flags: uninsdeletekey createvalueifdoesntexist
Root: HKCR; Subkey: "EUDOSApp\DefaultIcon"; ValueType: string; ValueName: "";
ValueData: "{app}\BIN\EXW.EXE,0"; Flags: uninsdeletekey createvalueifdoesntexist
Root: HKCR; Subkey: "EUDOSApp\shell\open\command"; ValueType: string; ValueName:
""; ValueData: """{app}\BIN\EX.EXE"" ""%1"""; Flags: uninsdeletekey
createvalueifdoesntexist

;associate .e, .ew files to be called by ED.bat
Root: HKCR; Subkey: ".e"; ValueType: string; ValueName: ""; ValueData:
"EUCodeFile"; Flags: uninsdeletevalue createvalueifdoesntexist
Root: HKCR; Subkey: ".ew"; ValueType: string; ValueName: ""; ValueData:
"EUCodeFile"; Flags: uninsdeletevalue createvalueifdoesntexist
Root: HKCR; Subkey: "EUCodeFile"; ValueType: string; ValueName: ""; ValueData:
"Euphoria Code File"; Flags: uninsdeletekey createvalueifdoesntexist
Root: HKCR; Subkey: "EUCodeFile\DefaultIcon"; ValueType: string; ValueName: "";
ValueData: "{app}\BIN\EuInc.ico,0"; Flags: uninsdeletekey
createvalueifdoesntexist
Root: HKCR; Subkey: "EUCodeFile\shell\open\command"; ValueType: string;
ValueName: ""; ValueData: """{app}\BIN\ED.BAT"" ""%1"""; Flags: uninsdeletekey
createvalueifdoesntexist

[Messages]
FinishedLabel=Setup has finished installing [name] on your computer.%n%nYou can
now run Euphoria .ex and .exw programs by double-clicking them, or (after reboot)
by typing:%n     ex filename.ex%nor%n     exw filename.exw%non a command-line.

[Run]
;Generate DOCS, and update EUDIR and PATH in AUTOEXEC.bat for Win 95,98 and ME
Filename: "{tmp}\exw.exe"; Description: "Generate Documentation Files as HTML";
Parameters: "{tmp}\doc2.exw HTML {app}"; StatusMsg: "Generating HTML
documentation files ...";
Filename: "{tmp}\exw.exe"; Description: "Generate Documentation Files as plain
text"; Parameters: "{tmp}\doc2.exw TEXT {app}"; StatusMsg: "Generating plain text
documentation files ...";
Filename: "{tmp}\exw.exe"; Description: "Combine Documentation Files";
Parameters: "{tmp}\combine2.exw {app}"; StatusMsg: "Combining documentation files
...";
Filename: "{tmp}\exw.exe"; Description: "Create exwc.exe"; Parameters:
"{tmp}\makecon.exw ""{app}"""; StatusMsg: "Making exwc.exe ...";
Filename: "{tmp}\exw.exe"; Description: "Update AUTOEXEC.bat"; Parameters:
"{tmp}\setupae2.exw {app}"; StatusMsg: "Updating AUTOEXEC.BAT ..."; MinVersion:
4.0,0

----------------------------------

Regards,
   Rob Craig
   Rapid Deployment Software
   http://www.RapidEuphoria.com

new topic     » goto parent     » topic index » view message » categorize

3. Re: DOS/Windows installer 3.x

On Wed, 18 Oct 2006 14:36:58 -0700, Juergen Luethje
<guest at RapidEuphoria.com> wrote:

>Suggestions for improvement of the DOS/Windows installer:
<snip>
>(I assume you are using INNO setup)
I think I said this before, but the makesfx option:
http://www.disoriented.com/FreeExtractor/
does everything you need and can run any installed .exe you want
automatically, eg, in a batch file/command line version, I use:
makesfx.exe /zip="PI.ZIP" /sfx="PI.EXE" /title="Install Positive" 
/website="http://palacebuilders.pwp.blueyonder.co.uk/positive.htm" 
/intro="This program installs Positive" 
/defaultpath="$programfiles$\Positive" 
/shortcut="$desktop$\p.lnk|$targetdir$\p.exe" /overwrite 
/exec="$targetdir$\p.exe"

(all on one line).

Plus, you can extract from the resulting pi.exe using winzip etc.

Short, sweet, open source, what more could you want?

Regards,
Pete
PS I use a separate batch file to build pi.zip first.

new topic     » goto parent     » topic index » view message » categorize

4. Re: DOS/Windows installer 3.x

Pete Lomax wrote:

> On Wed, 18 Oct 2006 14:36:58 -0700, Juergen Luethje
> <guest at RapidEuphoria.com> wrote:
> 
>> Suggestions for improvement of the DOS/Windows installer:
> <snip>
>> (I assume you are using INNO setup)
>
> I think I said this before, but the makesfx option:
> http://www.disoriented.com/FreeExtractor/
> does everything you need and can run any installed .exe you want
> automatically, eg, in a batch file/command line version, I use:
> makesfx.exe /zip="PI.ZIP" /sfx="PI.EXE" /title="Install Positive" 
> /website="http://palacebuilders.pwp.blueyonder.co.uk/positive.htm" 
> /intro="This program installs Positive" 
> /defaultpath="$programfiles$\Positive" 
> /shortcut="$desktop$\p.lnk|$targetdir$\p.exe" /overwrite 
> /exec="$targetdir$\p.exe"
> 
> (all on one line).
> 
> Plus, you can extract from the resulting pi.exe using winzip etc.

This would be nice, since some people had expressed that they prefer to do so.
So using FreeExtractor, it wouldn't be necessary to distribute 2 different
packages for DOS/Windows (one INNO setup installer and one ZIP archive), but the
same file could be used to either install Euphoria automatically or to unpack it
manually.

> Short, sweet, open source, what more could you want?

I mostly agree. Sweet and elegant solution, which doesn't need a proprietary
file format. And the "FreeExtractor Wizard" program looks very clean.
However, the FreeExtractor doesn't provide much options. E.g. it isn't possible
to build an installer, that can associate .e, .ex, and .exw files with Euphoria.
It also cannot create an uninstaller. Look what Rob's INNO setup script does ...

I have searched for other tools that create installation programs, which are
actually self-extractiing ZIP files. 7-Zip claims to be able to do so ... but
just forget about it. The resulting self-extractiing ZIP files do not actually
contain an installation wizard. I've found another program that looks somewhat
promising, but I wouldn't consider the current version mature.

So if the limited features of FreeExtractor are sufficint for Rob and everyone
else, I think it's a clean and elegant solution. And as you showed above,
creating a setup with it is very easy.

Regards,
   Juergen

new topic     » goto parent     » topic index » view message » categorize

5. Re: DOS/Windows installer 3.x

Robert Craig wrote:

> Juergen Luethje wrote:
>> Suggestions for improvement of the DOS/Windows installer:
>> 
>> a) It should make a copy of "autoexec.bat" before changing that file.
>> 
>> b) It should assign _short_ path names to the environment variables in
>>    "autoexec.bat".
>>    I know, on an English Windows version Euphoria will be installed by
>>    default to the directory "C:\Programs\Euphoria". Since no part of
>>    this path has more than 8 characters, there will be no problem.
>>    But people might chose a diffwerent location, or for instance in
>>    German it is "Programme" instead of "Programs".
>> 
>>    So the installer should write to a German "autoexec.bat" e.g.
>>       SET EUDIR=C:\Progra~1\Euphoria
>>    instead of
>>       SET EUDIR=C:\Programme\Euphoria
>>    This is important, because plain DOS can only process short names.
>> 
>>    The following Windows function converts an existing long path name to
>>    a short name:
>>
>> <snip>
>>
>>    Maybe a program that uses a function like this can help.
>> 
>> Rob, if you want, you can also send me the setup script
>> (I assume you are using INNO setup), and I'll see what I can do.
> 
> Thanks. My impression was that long PATH names worked with DOS
> unless they had a blank in them, in which case there was a glitch
> in some special situation. Maybe someone can test it.

On bare DOS, without IFSMgr (i.e. Windows 95+) or any special TSR
program running in the background, the part of a file or directory name
before the dot can have 1 to 8 characters, and the extension can have
0 to 3 characters. An _additional_ limitation of bare DOS is, that
the names must not contain blanks.
See e.g. <http://www.ahuka.com/dos/lesson7.html>

I have tested it on bare MS-DOS 7.10 (the version that ships with
Windows 98) just now:

Assigning long names to the following environment variables
   EUDIR=C:\Programme\Euphoria
   PATH=C:\Programme\Euphoria\Bin
in "autoexec.bat" alone works fine.

But the problem is, that on bare DOS there are no directories
   C:\Programme\Euphoria
         and
   C:\Programme\Euphoria\Bin
on my hard drive!!

So when I e.g. change to directory "D:\temp", and try to launch the
existing Eu program "D:\temp\test.ex", it looks like this:
--------------------------------------------------------------------
D:\TEMP>ex.exe test.ex
Befehl oder Dateiname nicht gefunden.
( Translation: Command or file name not found. )
--------------------------------------------------------------------

Ex.exe couldn't be found ...
Using the command
   C:\>dir

shows me, that the name of the concerning directory is
   C:\Progra~1
      and not
   C:\Programme

Then I changed "autoexec.bat", so that it contained the lines
   EUDIR=C:\Progra~1\Euphoria
   PATH=C:\Progra~1\Euphoria\Bin
and rebooted the PC.

Now the environment variables contained the correct existing path names,
and instead of an error message I got:
--------------------------------------------------------------------
D:\TEMP>ex.exe test.ex
Hello from Euphoria
--------------------------------------------------------------------

The hassle with long/short filenames does not cause problems in
_special_ situations, but in very many standard situations.

Now someone might think: "Why support bare DOS?".
My answer would be:
Ex.exe is a program for bare DOS, and Autoexec.bat is a file for bare
DOS anyway. So of course the commands in Autoexec.bat should work on
bare DOS.

> Here's the INNO script that I currently use.
> Alberto Gonzalez wrote it originally, but I've
> changed it a lot since then. Note that on my machine
> there's an extra directory, euphoria\htx. It contains
> the true source of the docs, as well as some helper
> Euphoria programs for the install. I should
> release that eventually. It gets deleted after the
> doc and htm files are generated.
> Generating doc and html from htx during the install
> saves a bit of space in the installation file.
> I'm not sure if its worth it.

I see. So I cannot actually test the script and build the installation
file myself.

> ----------------------------------
> 
> ; -- Inno Setup script to install Euphoria by Rapid Deployment Software
> ; --
> ;
> --------------------------------------------------------------------------------
> ; -- Euphoria can be found as http://www.rapideuphoria.com
> ; -- The Inno Setup compiler can be found at http://www.innosetup.com and
> is free
> ; --
> ;
> --------------------------------------------------------------------------------
> ; -- Created by Alberto Gonzalez (of Nomadic Soul Concepts - NomSCon)
> ; -- EMail: al at nomscon.com
> ; --
> 
> [Setup]
> AppName=Euphoria
> AppVersion=3.0
> AppVerName=Euphoria v3.0
> AppPublisher=Rapid Deployment Software
> AppPublisherURL=http://www.rapideuphoria.com
> AppSupportURL=http://www.rapideuphoria.com
> AppUpdatesURL=http://www.rapideuphoria.com
> DefaultDirName=C:\EUPHORIA
> DefaultGroupName=Euphoria
> AllowNoIcons=yes
> ;AlwaysCreateUninstallIcon=yes
> ;LicenseFile=license.txt
> ; uncomment the following line if you want your installation to run on NT 3.51
> too.
> ;MinVersion=4,3.51
> DisableStartupPrompt=yes
> DisableReadyPage=yes
> OutputDir=..\Setup
> OutputBaseFilename=e30setup
> Compression=lzma
> SolidCompression=yes
> ChangesAssociations=yes
> InfoBeforeFile=c:\euphoria\htx\before.txt
> InfoAfterFile=c:\euphoria\htx\after.txt
> Uninstallable=no
> 
> [Types]
> Name: "full"; Description: "Full installation"
> Name: "custom"; Description: "Custom installation"; Flags: iscustom
> 
> ;[Components]
> ;Name: "main"; Description: "Core files (Interpreter and Translator)"; Types:
> full; Flags: fixed
> ;Name: "docs"; Description: "Documentation and Tutorial"; Types: full; Flags:
> fixed
> ;Name: "demos"; Description: "Demonstration programs"; Types: full; Flags:
> fixed
> ;Name; "source"; Description: "Source code"; Types: full; Flags: fixed
> ;[Tasks]
> ;Name: "associate"; Description: "&Associate file extensions";

According to what several people wrote here in the past, they would
appreciate it, if the [Tasks] section will be enabled.
Then the install wizard will have an additional page that looks like
this: http://www.rapideuphoria.com/uploads/associate.png

The [Tasks] section itself has no effect on the installation.
In order to work properly, to each concerning command you'll have to add
   Tasks: associate
Then the installer will only associate the file extensions, if the user
has checked the option.

> [Dirs]
> Name: "{app}\backup"; Flags: deleteafterinstall
> Name: "{app}\HTML";
> Name: "{app}\DOC";
> 
> [Files]
> ; Save all Euphoria subdirectories to backup subdirectory (can't use
> recursesubdirs
> here)
> ; bin
> Source: "{app}\bin\*.*"; DestDir: "{app}\backup\bin"; Flags: confirmoverwrite
> external skipifsourcedoesntexist
> ; include
> Source: "{app}\include\*.*"; DestDir: "{app}\backup\include"; Flags:
> confirmoverwrite
> external skipifsourcedoesntexist
> ; doc
> Source: "{app}\doc\*.*"; DestDir: "{app}\backup\doc"; Flags: confirmoverwrite
> external skipifsourcedoesntexist
> ; htm
> Source: "{app}\html\*.*"; DestDir: "{app}\backup\html"; Flags:
> confirmoverwrite
> external skipifsourcedoesntexist
> ; tutorial
> Source: "{app}\tutorial\*.*"; DestDir: "{app}\backup\tutorial"; Flags:
> confirmoverwrite
> external skipifsourcedoesntexist
> ; demo
> Source: "{app}\demo\*.*"; DestDir: "{app}\backup\demo"; Flags:
> confirmoverwrite
> external skipifsourcedoesntexist
> ; demo\dos32
> Source: "{app}\demo\dos32\*.*"; DestDir: "{app}\backup\demo\dos32"; Flags:
> confirmoverwrite
> external skipifsourcedoesntexist
> ; demo\win32
> Source: "{app}\demo\win32\*.*"; DestDir: "{app}\backup\demo\win32"; Flags:
> external
> skipifsourcedoesntexist
> ; demo\langwar
> Source: "{app}\demo\langwar\*.*"; DestDir: "{app}\backup\demo\langwar"; Flags:
> external skipifsourcedoesntexist
> ; demo\bench
> Source: "{app}\demo\bench\*.*"; DestDir: "{app}\backup\demo\bench"; Flags:
> external
> skipifsourcedoesntexist
> ; source
> Source: "{app}\source\*.*"; DestDir: "{app}\backup\source"; Flags: external
> skipifsourcedoesntexist
> ; top level
> Source: "{app}\readme.doc"; DestDir: "{app}\backup"; Flags: external
> skipifsourcedoesntexist
> Source: "{app}\readme.htm"; DestDir: "{app}\backup"; Flags: external
> skipifsourcedoesntexist
> Source: "{app}\License.txt"; DestDir: "{app}\backup"; Flags: external
> skipifsourcedoesntexist
> 
> ; Temporary Programs used to update AUTOEXEC.BAT in Windows 95, 98 and ME,
> ; create the docs, and exwc.exe (see [Run] section below)
> Source: c:\euphoria\bin\exw.exe; DestDir: {tmp}; CopyMode:alwaysoverwrite; 
> Flags: deleteafterinstall;
> Source: c:\euphoria\bin\makecon.exw; DestDir: {tmp}; CopyMode:
> alwaysoverwrite;
> Flags: deleteafterinstall;
> Source: c:\euphoria\htx\setupae2.exw; DestDir: {tmp}; CopyMode:
> alwaysoverwrite;
> Flags: deleteafterinstall;  MinVersion: 4.0,0
> Source: c:\euphoria\htx\doc2.exw; DestDir: {tmp}; CopyMode: alwaysoverwrite;
> Flags: deleteafterinstall;
> Source: c:\euphoria\htx\combine2.exw; DestDir: {tmp}; CopyMode:
> alwaysoverwrite;
> Flags: deleteafterinstall;
> 
> ; Files to Install
> ;Root
> Source: C:\EUPHORIA\FILE_ID.DIZ; DestDir: {app}; CopyMode: alwaysoverwrite;
> Source: C:\EUPHORIA\License.txt; DestDir: {app}; CopyMode: alwaysoverwrite;
> ;BIN
> Source: C:\EUPHORIA\BIN\EX.EXE; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\EXW.EXE; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\BACKEND.EXE; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\BACKENDW.EXE; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\SYNCOLOR.E; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\BIN.DOC; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\KEYWORDS.E; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\ED.EX; DestDir: {app}\BIN\; CopyMode: alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\LINES.EX; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\ASCII.EX; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: "C:\EUPHORIA\BIN\KEY.EX"; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\GURU.EX; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\WHERE.EX; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\SEARCH.EX; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\EPRINT.EX; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\LINES.BAT; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\GURU.BAT; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\EPRINT.BAT; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\ED.BAT; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> MinVersion: 0,4.0
> Source: C:\EUPHORIA\BIN\OLDED.BAT; DestDir: {app}\BIN\; DestName: ed.bat;
> CopyMode:
> alwaysoverwrite; MinVersion: 4.0,0
> Source: C:\EUPHORIA\BIN\CDGURU.BAT; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\SEARCH.BAT; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\ASCII.BAT; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\WHERE.BAT; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: "C:\EUPHORIA\BIN\KEY.BAT"; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\MAKE31.EXW; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\MAKECON.EXW; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\EUINC.ICO; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\EC.EXE; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\ECW.EXE; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\LE23P.EXE; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\CWC.EXE; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\CWSTUB.EXE; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\LIBALLEG.A; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\BIND.BAT; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\BINDW.BAT; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\SHROUD.BAT; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\EC.A; DestDir: {app}\BIN\; CopyMode: alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\EC.LIB; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\ECFASTFP.LIB; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\ECW.LIB; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\ECWB.LIB; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\ECWL.LIB; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\BIN\EUPHORIA.ICO; DestDir: {app}\BIN\; CopyMode:
> alwaysoverwrite;
> 
> ;DEMO
> Source: C:\EUPHORIA\DEMO\*.*; DestDir: {app}\DEMO\; CopyMode: alwaysoverwrite;
> Flags: recursesubdirs;
> ;HTX
> Source: C:\EUPHORIA\HTX\*.HTX; DestDir: {tmp}; CopyMode: alwaysoverwrite;
> ;INCLUDE
> Source: C:\EUPHORIA\INCLUDE\*.E; DestDir: {app}\INCLUDE\; CopyMode:
> alwaysoverwrite;
> Source: C:\EUPHORIA\INCLUDE\EUPHORIA.H; DestDir: {app}\INCLUDE\; CopyMode:
> alwaysoverwrite;
> ;SOURCE
> Source: C:\EUPHORIA\source\*.*; DestDir: {app}\SOURCE\; CopyMode:
> alwaysoverwrite;
> ;TUTORIAL
> Source: C:\EUPHORIA\TUTORIAL\*.*; DestDir: {app}\TUTORIAL\; CopyMode:
> alwaysoverwrite;
> 
> [INI]
> ; shortcut file to launch Rapid Euphoria website
> Filename: {app}\RapidEuphoria.url; Section: InternetShortcut; Key: URL;
> String: http://www.rapideuphoria.com
> 
> [Icons]
> ; Icons (shortcuts) to display in the Start menu
> Name: {group}\Euphoria Manual; Filename: {app}\html\refman.htm
> Name: {group}\Euphoria on the Web; Filename: {app}\RapidEuphoria.url
> Name: {group}\Euphoria (Win); Filename: {app}\BIN\EXW.EXE
> Name: {group}\Euphoria (Dos); Filename: {app}\BIN\EX.EXE
> Name: {group}\Euphoria Editor; Filename: {app}\BIN\ED.bat
> 
> 
> [UninstallDelete]
> Type: files; Name: {app}\RapidEuphoria.url
> 
> [Registry]
> ;set EUDIR environment variable and add to PATH on NT/2000/XP machines
> ROOT: HKCU; Subkey: "Environment"; ValueType: string; ValueName: "EUDIR";
> ValueData:
> "{app}"; Flags: uninsdeletevalue; MinVersion: 0, 3.51
> ROOT: HKCU; Subkey: "Environment"; ValueType: string; ValueName: "PATH";
> ValueData:
> "{app}\BIN;{reg:HKCU\Environment,PATH}"; MinVersion: 0, 3.51
> 
> ;associate .exw files to be called by EXW.exe
> Root: HKCR; Subkey: ".exw"; ValueType: string; ValueName: ""; ValueData:
> "EUWinApp";
> Flags: uninsdeletevalue createvalueifdoesntexist

Tasks: associate

> Root: HKCR; Subkey: "EUWinApp"; ValueType: string; ValueName: ""; ValueData:
> "Euphoria Windows App"; Flags: uninsdeletekey createvalueifdoesntexist

Tasks: associate

> Root: HKCR; Subkey: "EUWinApp\DefaultIcon"; ValueType: string; ValueName: "";
> ValueData: "{app}\BIN\EXW.EXE,0"; Flags: uninsdeletekey
> createvalueifdoesntexist

Tasks: associate

> Root: HKCR; Subkey: "EUWinApp\shell\open\command"; ValueType: string;
> ValueName:
> ""; ValueData: """{app}\BIN\EXW.EXE"" ""%1"""; Flags: uninsdeletekey
> createvalueifdoesntexist

Tasks: associate

> ;associate .ex files to be called by EX.exe
> Root: HKCR; Subkey: ".ex"; ValueType: string; ValueName: ""; ValueData:
> "EUDOSApp";
> Flags: uninsdeletevalue createvalueifdoesntexist
> Root: HKCR; Subkey: "EUDOSApp"; ValueType: string; ValueName: ""; ValueData:
> "Euphoria DOS App"; Flags: uninsdeletekey createvalueifdoesntexist
> Root: HKCR; Subkey: "EUDOSApp\DefaultIcon"; ValueType: string; ValueName: "";
> ValueData: "{app}\BIN\EXW.EXE,0"; Flags: uninsdeletekey
> createvalueifdoesntexist
> Root: HKCR; Subkey: "EUDOSApp\shell\open\command"; ValueType: string;
> ValueName:
> ""; ValueData: """{app}\BIN\EX.EXE"" ""%1"""; Flags: uninsdeletekey
> createvalueifdoesntexist
> 
> ;associate .e, .ew files to be called by ED.bat
> Root: HKCR; Subkey: ".e"; ValueType: string; ValueName: ""; ValueData:
> "EUCodeFile";
> Flags: uninsdeletevalue createvalueifdoesntexist
> Root: HKCR; Subkey: ".ew"; ValueType: string; ValueName: ""; ValueData:
> "EUCodeFile";
> Flags: uninsdeletevalue createvalueifdoesntexist
> Root: HKCR; Subkey: "EUCodeFile"; ValueType: string; ValueName: ""; ValueData:
> "Euphoria Code File"; Flags: uninsdeletekey createvalueifdoesntexist
> Root: HKCR; Subkey: "EUCodeFile\DefaultIcon"; ValueType: string; ValueName:
> ""; ValueData: "{app}\BIN\EuInc.ico,0"; Flags: uninsdeletekey
> createvalueifdoesntexist
> Root: HKCR; Subkey: "EUCodeFile\shell\open\command"; ValueType: string;
> ValueName:
> ""; ValueData: """{app}\BIN\ED.BAT"" ""%1"""; Flags: uninsdeletekey
> createvalueifdoesntexist
> 
> [Messages]
> FinishedLabel=Setup has finished installing [name] on your computer.%n%nYou
> can now run Euphoria .ex and .exw programs by double-clicking them, or (after
> reboot) by typing:%n     ex filename.ex%nor%n     exw filename.exw%non a
> command-line.
> 
> [Run]
> ;Generate DOCS, and update EUDIR and PATH in AUTOEXEC.bat for Win 95,98 and
> ME
> Filename: "{tmp}\exw.exe"; Description: "Generate Documentation Files as
> HTML";
> Parameters: "{tmp}\doc2.exw HTML {app}"; StatusMsg: "Generating HTML
> documentation
> files ...";
> Filename: "{tmp}\exw.exe"; Description: "Generate Documentation Files as plain
> text"; Parameters: "{tmp}\doc2.exw TEXT {app}"; StatusMsg: "Generating plain
> text documentation files ...";
> Filename: "{tmp}\exw.exe"; Description: "Combine Documentation Files";
> Parameters:
> "{tmp}\combine2.exw {app}"; StatusMsg: "Combining documentation files ...";
> Filename: "{tmp}\exw.exe"; Description: "Create exwc.exe"; Parameters:
> "{tmp}\makecon.exw
> ""{app}"""; StatusMsg: "Making exwc.exe ...";
> Filename: "{tmp}\exw.exe"; Description: "Update AUTOEXEC.bat"; Parameters:
> "{tmp}\setupae2.exw
> {app}"; StatusMsg: "Updating AUTOEXEC.BAT ..."; MinVersion: 4.0,0
> 
> ----------------------------------

The program "setupae2.exw" changes "autoexec.bat". The first thing it
should do is making a backup copy say "autoexec.bak". Then it should
convert {app} to its corresponding short 8.3 name, before writing the
name to "autoexec.bat". For this conversion, the Windows API function 
GetShortPathName() can be used.
( The sample program that I currently posted is not very clean, you'll
probably write a better one. smile )

Sorry for the long post. I hope it is understandable.

Regards,
   Juergen

new topic     » goto parent     » topic index » view message » categorize

6. Re: DOS/Windows installer 3.x

On Sat, 21 Oct 2006 11:57:59 -0700, Juergen Luethje
<guest at RapidEuphoria.com> wrote:

>> ;[Components]
>> ;Name: "main"; Description: "Core files (Interpreter and Translator)"; Types:
>> full; Flags: fixed
>> ;Name: "docs"; Description: "Documentation and Tutorial"; Types: full; Flags:
>> fixed
>> ;Name: "demos"; Description: "Demonstration programs"; Types: full; Flags:
>> fixed
>> ;Name; "source"; Description: "Source code"; Types: full; Flags: fixed
>> ;[Tasks]
>> ;Name: "associate"; Description: "&Associate file extensions";
>
>According to what several people wrote here in the past, they would
>appreciate it, if the [Tasks] section will be enabled.
LOL, when I read Rob's post, I didn't spot that was all commented out!

Regards,
Pete
PS no-one jumped up and down and screamed must keep INNO blink
       setupae2.exw seems to do most of the needed anyway?
PPS:
>> Generating doc and html from htx during the install
>> saves a bit of space in the installation file.
>> I'm not sure if its worth it.
>
>I see. So I cannot actually test the script and build the installation
>file myself.
Uh. I would never use the .doc files so creating them is a bit of a
waste of time for me, though I guess I'll live with it if the general
consensus is it simplifies newbie install. In any case Rob should
clearly release the htx files if he uses them in the install.

new topic     » goto parent     » topic index » view message » categorize

7. Re: DOS/Windows installer 3.x

Juergen Luethje wrote:
> ...long post...
>
> I see. So I cannot actually test the script and build the installation
> file myself.

I'll look into the idea of including the missing 
euphoria\htx directory. That will let anyone create 
an INNO installation file, and also generate .doc
and .htm files from .htx files. The .doc files
might seem redundant, but the guru search and the
on-line documentation search use them, and some people
find them easier to print. (.htx files aren't terribly
sophisticated. Maybe someone can make a better format.)

The issue of file associations came up a few years ago.
People didn't want me touching their precious associations.
I could be wrong, but I thought I then fixed it so that it 
will only make an association where no association 
currently exists. That seems to be about as good a solution
as having an separate option (task) to set all the 
associations or not.

Regards,
   Rob Craig
   Rapid Deployment Software
   http://www.RapidEuphoria.com

new topic     » goto parent     » topic index » view message » categorize

8. Re: DOS/Windows installer 3.x

Robert Craig wrote:

> Juergen Luethje wrote:
>> ...long post...
>>
>> I see. So I cannot actually test the script and build the installation
>> file myself.
> 
> I'll look into the idea of including the missing 
> euphoria\htx directory. That will let anyone create 
> an INNO installation file, and also generate .doc
> and .htm files from .htx files. The .doc files
> might seem redundant, but the guru search and the
> on-line documentation search use them,

That's why I like them, too.

> and some people
> find them easier to print. (.htx files aren't terribly
> sophisticated. Maybe someone can make a better format.)
> 
> The issue of file associations came up a few years ago.
> People didn't want me touching their precious associations.
> I could be wrong, but I thought I then fixed it so that it 
> will only make an association where no association 
> currently exists. That seems to be about as good a solution
> as having a separate option (task) to set all the 
> associations or not.

I agree, that would be a good solution, but at least on my
system (Windows 98) it does not work as intended. E.g. .EXW
files have previously been associated with my favourite Editor,
which I use for writing Eu programs. After installation of
Eu 3.0.0, .EXW files were associated with exw.exe.

Regards,
   Juergen

new topic     » goto parent     » topic index » view message » categorize

9. Re: DOS/Windows installer 3.x

Me wrote:

> Robert Craig wrote:

<snip>

>> The issue of file associations came up a few years ago.
>> People didn't want me touching their precious associations.
>> I could be wrong, but I thought I then fixed it so that it 
>> will only make an association where no association 
>> currently exists. That seems to be about as good a solution
>> as having a separate option (task) to set all the 
>> associations or not.
> 
> I agree, that would be a good solution, but at least on my
> system (Windows 98) it does not work as intended. E.g. .EXW
> files have previously been associated with my favourite Editor,
> which I use for writing Eu programs. After installation of
> Eu 3.0.0, .EXW files were associated with exw.exe.

Now I've tested it again. That is, I manually re-associated
.e, .ex, .ew, and .exw files with my favourite Editor, and then
I installed Eu 3.0.0 again. This time, the Eu installer didn't 
touch the associations!
I believe previously there has been an error in my registry, maybe
due to an over-aggressive Registry Cleaner, or maybe I had played
too much with the registry. smile
I'm sorry for the prior misinformation.

Regards,
   Juergen

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu