Thanks for clarifying Rony, should I file a bug report? @Jeremy I was initially launching from C:\Users\po (my "home dir")
Not from C:\Users But the problem is in the getTempFileName system function, not in anything I wrote. Example is from a sample delivered with ooRexx. Von meinem iPhone gesendet > Am 02.10.2019 um 12:31 schrieb Rony G. Flatscher <rony.flatsc...@wu.ac.at>: > > Jeremy, > > it is a problem with "samples\makestring.rex". > > Running it on a Windows 7 machine yields: > > C:\Program Files (x86)\ooRexx\samples>makestring.rex > Unable to create test file : C:\Users\ADMINI~1\AppData\Local\Temp\C:\Program > Files (x86)\ooRexx\samples\tst_input.528 > So the user's temporary directory location gets concatenated with the fully > qualified path to the temporary file. > > The Rexx code up to that point looks like (starting with line # 62 after the > comments and the routine starting at line # 225): > > --creating temporary input and output file > > file_name_in = getTempFileName('tst_input.???') > file_name_out = getTempFileName('tst_output.???') > file_in = .stream~new(file_name_in) > file_out = .stream~new(file_name_out) > > if file_in~open \= "READY:" then do > say "Unable to create test file : " file_name_in > exit > end > > ... cut ... > > ::routine getTempFileName > use strict arg template > > fileName = SysTempFileName(template) > parse upper source os . > > -- Add code for other operating systems here if needed. > select > when os~abbrev(WIN) then do > tempDir = value("TEMP", , "ENVIRONMENT") > if tempDir == "" then tempDir = value("TMP", , "ENVIRONMENT") > if tempDir == "" then leave -- Give up. > > if tempDir~right(1) \== '\' then tempDir = tempDir'\' > fileName = tempDir || fileName > end > otherwise > nop > end > > return fileName > SysTempFileName() returns a fully qualified path to the temporary file which > gets appended to the temporary directory on Windows only. > > Removing the entire select statement (looks awkward anyway as only one > WHEN-branch is there) solves the problem on Windows. > ---rony > >> On 02.10.2019 11:59, Jeremy Nicoll wrote: >>> On Tue, 1 Oct 2019, at 22:02, P.O. Jonsson wrote: >>> >>> Launching makestring.rex from the home directory (if that what it is >>> called on Win) works >> C:\Users >> >> isn't a home directory. Indeed it's not a usual place for a Windows user >> to be at all. If a user is in that sort of place you'd expect them to be >> looking at their own files eg at >> >> C:\Users\myusername >> >> >>> But launching it from anywhere else fails: >>> >>> C:\>rexx makestring.rex >>> Unable to create test file : C:\Users\po\AppData\Local\Temp\C:\tst_input.954 >> You've got two complete filenames concatenated there. >> >> The "C:\tst_input.954" part is not valid on the end of the earlier bit, >> because ":" >> is only valid as the second character of a filepath, immediately after a >> disk >> letter. > > _______________________________________________ > Oorexx-devel mailing list > Oorexx-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/oorexx-devel
_______________________________________________ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel