According to the Geany manual:
The system path is the data subfolder of the installation path on Windows.
The user configuration directory might vary, but on Windows XP it's: C:\Documents and Settings\UserName\Application Data\geany
Some updated info for Windows installs:
In my version of Windows, the actual path to the directory created by geany is
C:\Users\Owner\AppData\Roaming\geany
That path doesn't exist until geany is run once. You should tell users to run geany once so it can write those default files/dirs. This way you can confirm that whatever path they provide for installing these forms is correct.
The path to geany config files needs to be gotten from getenv("APPDATA"), instead of getenv("HOME").
APPDATA can be used from Windows XP on up. On my Windows XP box, it returns
C:\Documents and Settings\user\Application Data
On Windows 7 it returns
C:\The system path is the data subfolder of the installation path on Windows.
The user configuration directory might vary, but on Windows XP it's: C:\Documents and Settings\UserName\Application Data\geanyUsers\Owner\AppData\Roaming\geany
The Windows file path code need only be this:
constant GEANY_DIR = getenv( "APPDATA" ) & SLASH & "geany"
-- -- -- EuGeany 1.3b -- -- usage eui EuGeany.ex -- -- Installs Geany configuration files which -- provide support for the Euphoria Programming Language -- Existing files are backed up with an extension suffix -- which may be defined by the user --
-- For more information read comments in the respective files,
-- especially, filetypes.Euphoria.conf. -- -- include std/console.e include std/filesys.e include std/graphics.e constant BACKUP_SUFFIX = "~" -- constant BACKUP_SUFFIX = ".BAK" sequence GEANY_USER_CONFIG = getenv( "HOME") & SLASH & ".config" & SLASH & "geany" ifdef WINDOWS then GEANY_USER_CONFIG = getenv( "APPDATA" ) & SLASH & "geany" end ifdef -- create tags directory, if it does not already exist: if create_directory( GEANY_USER_CONFIG & SLASH & "tags" ) then end if constant SCREEN = 1 constant DIR = 1 constant FILE = 2 sequence data = { -- DIR = [1] -- FILE = [2] { SLASH & "filedefs" & SLASH , "filetypes.Euphoria.conf"}, { SLASH & "tags" & SLASH , "std.euphoria-4.1.e.tags" }, { SLASH , "filetype_extensions.conf" }, { SLASH , "snippets.conf"} } constant OVERWRITE_EXISTING_FILE = 1 sequence destination sequence pwd = current_dir() & SLASH bk_color(BLACK) for i=1 to length( data ) do destination = GEANY_USER_CONFIG & data[i][DIR] & data[i][FILE] -- BACKUP OLD FILES text_color(BRIGHT_BLUE) display( "\n---- " & destination ) if file_exists( destination ) then -- make a back up copy text_color(YELLOW) for x = 1 to length(GEANY_USER_CONFIG & data[i][DIR]) -11 do puts(SCREEN, " ") end for display( " backing up ... ", 0 ) if copy_file(destination,destination & BACKUP_SUFFIX,OVERWRITE_EXISTING_FILE) then -- do nothing else text_color(BRIGHT_RED) display( " !!! backup failed" ) end if else -- file does not exist, no need to back up text_color(YELLOW) display( "no backup file necessary ... ", 0 ) end if -- UPDATE FILES if copy_file( pwd & data[i][FILE], destination, OVERWRITE_EXISTING_FILE) then -- file is successfully updated text_color(BROWN) display( data[i][FILE], 0) text_color(BRIGHT_CYAN) display ( " UPDATED!") else -- update failed text_color(BRIGHT_RED) display( " !!! update failed") end if end for