bringing SDL 1.2.14 from vendor into the main branch
[AROS-Contrib.git] / regina / BUGS
blob8004dd1aa2ad4dbe1277cfebf85ee9a1bd6c3c84
1 This file explains, usually via sample code, some bugs that exist in
2 this release of Regina. The smaller this file the better!
3 Outstanding bugs are first; fixed ones at the end of this file.
5 /*--------------------------------------------------------------------
6  * INTERPRET "return" does not work correctly. If a value is returned
7  * it does work correctly.
8  * Reported by: Paul G. Barnett
9  * Bug Number:  020
10  * Fixed by:
11  * Fixed in:
12  */
13 Interpret "Return"
14 Say "should not get here!"
15 Return 1
17 /*--------------------------------------------------------------------
18  * LINES() BIF on transient streams return 1 when really at EOF
19  * Run program below as:
20  * regina test.rex BUGS
21  * and as
22  * cat BUGS | regina test.rex
23  * Reported by: Mark Hessling
24  * Bug Number:  021
25  * Fixed by:
26  * Fixed in:
27  */
28 /* test.rex */
29 Parse Arg fn
30 numlines = 0
31 Do While(Lines(fn) > 0)
32    line = Linein(fn)
33    numlines = numlines + 1
34 End
35 Say numlines 'in file'
37 /*--------------------------------------------------------------------
38  * Regina appears to read complete data files into memory in some
39  * operations.  More details to be specified.
40  * Reported by: ???
41  * Bug Number:  024
42  * Fixed by:
43  * Fixed in:
44  */
46 /*--------------------------------------------------------------------
47  * Clauses in the Interpret command are not traced correctly.
48  * Reported by: Dennis Bareis
49  * Bug Number:  025
50  * Fixed by:
51  * Fixed in:
52  */
54 /*--------------------------------------------------------------------
55  * The Regina parser incorrectly parses the sample code below, and
56  * returns the following error:
57  * Error 14 running "/home/mark/Regina-0.08h/bug29512.rex", line 2: Incomplete DO/IF/SELECT"
58  * If the '?' is protected by parentheses, it works.
59  * Reported By: Toby ?
60  * Bug Number:  19991216-29512
61  * Fixed By:
62  * Fixed in:
63  */
64 If (?) > 0 Then say 'OK'
65 If ? > 0 Then say 'OK'
67 /*--------------------------------------------------------------------
68  * Following code still fails with syntax error.
69  * Reported by: Mark Hessling
70  * Bug Number:  20000319-63722
71  * Fixed by:
72  * Fixed in:
73  */
74 Call Fred'1234'  /* syntax error */
76 /*--------------------------------------------------------------------
77  * TRACE R and TRACE I produce incorrect results in various
78  * circumstances.
79  * Reported by: Various
80  * Bug Number:  
81  * Fixed by:
82  * Fixed in:
83  */
85 /*--------------------------------------------------------------------
86  * Regina is inconsistent with the ANSI standard when it comes to
87  * treatment of whitespace in various circumstances.
88  * Reported by: Dennis Baeris
89  * Bug Number:  20000505-73993
90  * Fixed by:
91  * Fixed in:
92  */
94 a = '0a'x
95 b = ' '
97 if a = b then say 'incorrect'
98 else say 'ANSI correct'
100 if strip(a) == strip(b) then say 'ANSI correct'
101 else say 'incorrect'
103 /*--------------------------------------------------------------------
104  * Regina crashes with following code:
105  * Reported by: Mark Hessling
106  * Bug Number:  36
107  * Fixed by:
108  * Fixed in:
109  */
110 Signal on syntax
112 Say fred()
113 Return
115 fred:
116 Return /* should return a value!! */
118 syntax:
119 Say Condition( 'D' )
120 Exit
122 /*--------------------------------------------------------------------
123  * Regina does not trap conditions in externally called routines
124  * Reported by: Mark Hessling
125  * Bug Number:  
126  * Fixed by:
127  * Fixed in:
128  */
129 /* a1.rex */
130 signal on syntax
131 call 'a2' 'an err'
132 return 0
134 syntax:
135 say 'syntax at' sigl
136 exit 1
138 /* a2.rex - must be in REGINA_MACROS */
139 parse arg aa
140 say 'in a2' aa
141 say date('x')
142 return
144 Should result in:
145 ----------------
146 in a2 an err
147 syntax at 3
149 ======================================================================
150 ============================= FIXED ==================================
151 ======================================================================
153 /*--------------------------------------------------------------------
154  * Subroutines cannot have leading numerics in their name.
155  * Reported by: Frank M. Ramaekers Jr.
156  * Bug Number:  001
157  * Fixed by:    Mark Hessling
158  * Fixed in:    0.08e
159  */
160 Say 'starting...'
161 rc = 1000_my_proc( "value" )
162 Return
164 1000_my_proc: Procedure
165 Parse Arg parm .
166 Say parm
167 Return 0
169 /*--------------------------------------------------------------------
170  * Calling CHAROUT with the newline character, '0a'x, would result in
171  * a CR and LF being output. This only happens under DOS, OS/2 and
172  * Win32 platforms.
173  * Reported by: Dennis Bareis
174  * Bug Number:  002
175  * Fixed by:    Mark Hessling
176  * Fixed in:    0.08e
177  */
178 newl = '0a'x
179 Call charout "myfile", "Line 1" || newl
180 Return
182 /*--------------------------------------------------------------------
183  * Line continuation character; ',' followed by CRLF in source file
184  * would give syntax error.
185  * Reported by: Florian Grosse-Coosmann
186  * Bug Number:  003
187  * Fixed by:    Mark Hessling
188  * Fixed in:    0.08e
189  */
190 Say 'Hello', /* line ends in CRLF pair */
191     'world'
192 Return
194 /*--------------------------------------------------------------------
195  * The value of the last token parsed with PARSE contains incorrect
196  * leading space(s).
197  * Reported by: Dennis Bareis
198  * Bug Number:  004
199  * Fixed by:    Florian Grosse-Coosmann
200  * Fixed in:    0.08f
201  */
202 a = 'one  two  three'
203 Parse Var a one two three
204 Say '<' || three || '>'
206 /*--------------------------------------------------------------------
207  * The value returned by CHARS BIF was incorrect especially after a
208  * LINEIN call.  The result is the example following would never end.
209  * Reported by: Yuri Shemanin
210  * Bug Number:  005
211  * Fixed by:    Yuri Shemanin
212  * Fixed in:    0.08f
213  */
214 f = 'junk'
215 Do While Chars(f) <> 0
216   l = Linein(f)
219 /*--------------------------------------------------------------------
220  * On some platforms, if operating system command redirection was
221  * done using >FIFO, and the current directory was not writeable by
222  * the user, the command would fail. The cause is that the tmpnam()
223  * C library function is broken on several compilers.
224  * Added workaround to use environment variables, TMP, TEMP or TMPDIR.
225  * Reported by: ???
226  * Bug Number:  006
227  * Fixed by:    Mark Hessling
228  * Fixed in:    0.08f
229  */
231 /*--------------------------------------------------------------------
232  * On platforms that did not have a C library function, alloca()
233  * Regina would leak memory.  This has now been fixed by inclusion
234  * of our own alloca() function if one doesn't exist.
235  * Reported by: Mark Hessling
236  * Bug Number:  007
237  * Fixed by:    Mark Hessling
238  * Fixed in:    0.08f
239  */
241 /*--------------------------------------------------------------------
242  * A bug in the Win95/98 command processor results in any call to
243  * an operating system command ALWAYS return 0, even though the
244  * command fails.
245  * This change attempts to circumvent this bug, but it can't in all
246  * circumstances.  If the operating system command called is an
247  * executable file, and there is no output/input redirection, then
248  * the return code from the executable program will be returned. Any
249  * internal COMMAND.COM command, such as COPY, will ALWAYS return 0;
250  * there is no way around this until M$ fix there COMMAND.COM.
251  * If you use JP Software's 4DOS for NT, then you will have no problems
252  * as it correctly returns the error from the internal command.
253  * Reported by: Michael Sundermann
254  * Bug Number:  008
255  * Fixed by:    Michael Sundermann
256  * Fixed in:    0.08f
257  */
259 /*--------------------------------------------------------------------
260  * The result of the expression (0 = zero) should be 1, but Regina
261  * returns 0
262  * Reported by: Dan Hofferth
263  * Bug Number:  009
264  * Fixed by: Florian Grosse-Coosman
265  * Fixed in: 0.08f
266  */
267 zero = 0.000
268 say ( 0 = zero )  /* should say 1, but 0 */
270 /*--------------------------------------------------------------------
271  * A numeric variable "exposed" by a procedure and subsequently used
272  * in a loop within the procedure that exposed it, gets an erroneous
273  * value.
274  * Reported by: rick@emma.panam.wimsey.com
275  * Bug Number:  010
276  * Fixed by:    Florian Grosse-Coosmann
277  * Fixed in:    0.08f
278  */
279 num = 0
280 Call my_proc
281 Say 'num = ' num ';should be 6'
282 Return
284 my_proc: Procedure Expose num
285 Say 'num = ' num ';should be 0'
286 Do 3
287    num = num + 1
289 Say 'num = ' num ';should be 3'
290 num = num + 3
291 Say 'num = ' num ';should be 6'
292 Return
294 /*--------------------------------------------------------------------
295  * An error with dropping variables...
296  * Reported by: Dennis Bareis
297  * Bug Number:  011
298  * Fixed by:    Mark Hessling
299  * Fixed in:    0.08f
300  */
301 call SaveInfo  "Fred", "FredsValue";
302 call SaveInfo  "Fred", "FredsValue2";
303 call HandleUndefCommand "Fred";
304 call SaveInfo  "Fred", "FredsValue3";
305 say 'Passed!!!';
306 exit(0);
308 HandleUndefCommand:
309    SavedAs = "Define." || arg(1);
310    say '';
311    say '0.DROPPING "' || SavedAs || '"';
312    if  symbol(SavedAs) = 'VAR' then
313        drop(SavedAs)
314    return;
315 SaveInfo:
316    /*--- Check if variable previously existed ------------------------*/
317    say '';
318    say '0.SETTING - ' || arg(1) || ' to "' || arg(2) || '"';
319    SavedAs = "Define." || arg(1);
320    if  symbol(SavedAs) = 'VAR' then
321        say '1.Already Existed';
322    else
323        say '1.New info';
325    /*--- Save info ---------------------------------------------------*/
326    ExecutingCmd = SavedAs || ' = arg(2)'
327    say '2.Executing: "' || ExecutingCmd || '"'
328    interpret ExecutingCmd;
330    /*--- Check variable again! ---------------------------------------*/
331    if  symbol(SavedAs) = 'VAR' then
332    do
333        interpret 'ItsValue = ' || SavedAs;
334        say '3.Variable exists, value = "' || ItsValue || '"'
335    end
336    else
337    do
338        say '3.JUST SET VAR YET - Variable does not exist - WRONG!';
339        exit(1);
340    end;
341    return;
343                ********************
344 OUTPUT (note Define.FRED seems to exist TWICE in multiple cases):
346 0.SETTING - Fred to "FredsValue"
347 1.New info
348 2.Executing: "Define.Fred = arg(2)"
349 3.Variable exists, value = "FredsValue"
351 0.SETTING - Fred to "FredsValue2"
352 1.Already Existed
353 2.Executing: "Define.Fred = arg(2)"
354 3.Variable exists, value = "FredsValue2"
356 0.DROPPING "Define.Fred"
358 0.SETTING - Fred to "FredsValue3"
359 1.New info
360 2.Executing: "Define.Fred = arg(2)"
361 3.JUST SET VAR YET - Variable does not exist - WRONG!
363                ^^^^^^^^^^^^^^^^^^^^
364 Dumping variables to <stdout>
365    Variables from bin no 0
366    >>> Variable: EXECUTINGCMD Value: [Define.Fred = arg(2)]
367    Variables from bin no 107
368    >>> Stem    : Define. Default: [<none>]  Values:
369       Sub-bin no 161
370       >>> Tail: FRED Value: []
371    >>> Stem    : DEFINE. Default: [<none>]  Values:
372       Sub-bin no 161
373       >>> Tail: FRED Value: [FredsValue3]
374    Variables from bin no 109
375    >>> Variable: ITSVALUE Value: [FredsValue2]
376    Variables from bin no 175
377    >>> Variable: SIGL Value: [8]
378    Variables from bin no 231
379    >>> Variable: SAVEDAS Value: [Define.Fred]
381                ^^^^^^^^^^^^^^^^^^^^
383 /*--------------------------------------------------------------------
384  * Allow "stderr" to be used to refer to stderr in STREAM BIF.
385  * Reported by: Dennis Bareis
386  * Bug Number:  012
387  * Fixed by:    Mark Hessling
388  * Fixed in:    0.08f
389  */
390 rc = Stream('stderr', 'C', 'QUERY EXISTS')
392 /*--------------------------------------------------------------------
393  * The internal variable SIGL gets updated prematurely.
394  * Reported by: Dennis Bareis
395  * Bug Number:  013
396  * Fixed by:    Florian Grosse-Coosmann
397  * Fixed in:    0.08f
398  */
400 Call Alabel
401 Return
403 ALabel:
404 Call AnotherLabel SIGL
405 Return
407 AnotherLabel:
408 Parse Arg lineo
409 Say lineno
410 Return
412 /*--------------------------------------------------------------------
413  * A syntax error in a Rexx script passed to the RexxStart() API via
414  * the "instore" option, will exit the program, rather than return an
415  * error.
416  * Reported by: Mark Hessling
417  * Bug Number:  014
418  * Fixed by:    Florian Grosse-Coosmann
419  * Fixed in:    0.08f
420  */
422 /*--------------------------------------------------------------------
423  * The VALUE() BIF would not set values of compound variables correctly
424  * if the variable is specified in lower case.
425  * Reported by: Jeff Parlant and Dennis Bareis
426  * Bug Number:  015
427  * Fixed by:    Mark Hessling
428  * Fixed in:    0.08g
429  */
431 stemname = 'foo.'
432 foo.0 = 1
433 foo.1 = 'something'
434 call func
435 say foo.0
436 say foo.1
437 exit 0
439 func: procedure expose stemname (stemname)
440 /* trace ?i */
441 do i = 1 to value(stemname||0)
442    r = value(stemname||i,'something else')
444 return 0
446 /*--------------------------------------------------------------------
447  * The value of the last argument to a procedure when using the ARG() BIF
448  * has an incorrect trailing space.
449  * Reported by: Mark Hessling
450  * Bug Number:  016
451  * Fixed by: Mark Hessling
452  * Fixed in: 0.08g
453  */
455 Call proc '123', '456'
456 Return
458 proc:
459 Say '<' || arg(1) || '>' /* displays <123>  */
460 Say '<' || arg(2) || '>' /* displays <456 > */
461 Return
463 /*--------------------------------------------------------------------
464  * INTERPRET "return Func()" does not work correctly.
465  * Reported by: Paul G. Barnett
466  * Bug Number:  017
467  * Fixed by: Mark Hessling
468  * Fixed in: 0.08g - See Bug 020
469  */
470 Interpret "Return F1()"
471 Say "should not get here!"
472 Return
473 F1: Procedure
474 Say "in F1"
475 Return 0
477 /*--------------------------------------------------------------------
478  * File names in Regina are always case sensitive, even on non-Unix
479  * platforms.  This can result in incorrect read/write pointers when
480  * referencing a file by name with different case.
481  * Reported by: Jackie Cooper
482  * Bug Number:  018
483  * Fixed by: Mark Hessling
484  * Fixed in: 0.08g
485  */
486 myfile = 'abc'
487 myupperfile = 'ABC'
488 Call Lineout, myfile, 'Line1'
489 Call Lineout, myupperfile, 'Line2'
490 Call Lineout, myfile
491 numlines = 0
492 Do While(Lines(myfile)>0)
493    numlines = numlines + 1
495 Say 'Should be 2 lines, but got only' numlines
496 Return
498 /*--------------------------------------------------------------------
499  * Setting Rexx variables using VALUE BIF produce inconsistent results.
500  * Reported by: Dennis Baeris
501  * Bug Number:  019
502  * Fixed by:    Mark Hessling
503  * Fixed in:    0.08h
504  */
505 call value "Upd.3", "text";
506 say 'a) Upd.3="' || Upd.3          || '"';
507 say 'b) Upd.3="' || value("Upd.3") || '"';
508 say 'c) Upd.3="' || value("UPD.3") || '"';
510 Before fix, output was:
511 a) Upd.3="UPD.3"
512 b) Upd.3="text"
513 c) Upd.3="text"
515 after fix:
516 a) Upd.3="text"
517 b) Upd.3="text"
518 c) Upd.3="text"
520 /*--------------------------------------------------------------------
521  * Need to fix API call RexxVariablePool() to handle RXSHV_FETCH, RXSHV_SET
522  * and RXSHV_DROPV correctly.  They currently behave the same way as
523  * RXSHV_SYFET, RXSHV_SYSET and RXSHV_SYDRO respectively. ie the variables
524  * are treated symbolically rather than explicitly.
525  * Reported by: Mark Hessling
526  * Bug Number:  022
527  * Fixed By:    Jim Hasslacher, Jr.
528  * Fixed in:    0.08h
529  */
531 /*--------------------------------------------------------------------
532  * Assignment on compound variables does not work.
533  * Reported by: Mike Ruskai
534  * Bug Number:  026
535  * Fixed by:    No fix required.
536  * Fixed in:    Checked in 0.08h
537  * Comments:    Regina follows the ANSI standard when assigning one
538  *              stem variable to another.
539  *              Confusion arises between the way that Object Rexx
540  *              assigns one stem variable to another; Object Rexx does
541  *              NOT follow the ANSI standard.  In Object Rexx, a.=b.
542  *              creates a reference from a. to b.; ie a. is the same
543  *              stem as b.
544  */
545 foobar.1='One'
546 foobar.2='Two'
547 drop foobar.5
548 say 'FOOBAR.1 set to "One", FOOBAR.2 set to "Two", FOOBAR.5 dropped'
549 say 'assigning newstem1. to foobar. ...'
550 newstem1. = foobar.
551 say 'dropping newstem1.4'
552 drop newstem1.4
553 Say 'NEWSTEM1.1 Value:'  '"'newstem1.1'" should be "FOOBAR."'
554 Say 'NEWSTEM1.2 Value:'  '"'newstem1.2'" should be "FOOBAR."'
555 Say 'NEWSTEM1.3 Value:'  '"'newstem1.3'" should be "FOOBAR."'
556 Say 'NEWSTEM1.4 Value:'  '"'newstem1.4'" should be "NEWSTEM1.4"' '<-dropped'
557 Say 'NEWSTEM1.5 Value:'  '"'newstem1.5'" should be "FOOBAR."'
558 say 'assigning newstem2. to newstem1. ...'
559 newstem2. = newstem1.
560 say 'dropping newstem2.4'
561 drop newstem2.4
562 Say 'NEWSTEM2.1 Value:' '"'newstem2.1'" should be "FOOBAR."'
563 Say 'NEWSTEM2.2 Value:' '"'newstem2.2'" should be "FOOBAR."'
564 Say 'NEWSTEM2.3 Value:' '"'newstem2.3'" should be "FOOBAR."'
565 Say 'NEWSTEM2.4 Value:' '"'newstem2.4'" should be "NEWSTEM2.4"' '<-dropped'
566 Say 'NEWSTEM2.5 Value:' '"'newstem2.5'" should be "FOOBAR."'
567 /* with default value for source stem */
568 foobar1. = 'default'
569 foobar1.1='One'
570 foobar1.2='Two'
571 drop foobar1.5
572 say 'FOOBAR1. set to "default", FOOBAR1.1 set to "One", FOOBAR1.2 set to "Two", FOOBAR1.5 dropped'
573 say 'assigning newstem. to foobar. ...'
574 newstem. = foobar1.
575 say 'dropping newstem.4'
576 drop newstem.4
577 Say 'NEWSTEM.1 Value:' '"'newstem.1'" should be "default"'
578 Say 'NEWSTEM.2 Value:' '"'newstem.2'" should be "default"'
579 Say 'NEWSTEM.3 Value:' '"'newstem.3'" should be "default"'
580 Say 'NEWSTEM.4 Value:' '"'newstem.4'" should be "NEWSTEM.4"' '<-dropped'
581 Say 'NEWSTEM.5 Value:' '"'newstem.5'" should be "default"'
582 Say 'NEWSTEM.6 Value:' '"'newstem.6'" should be "default"'
584 /*--------------------------------------------------------------------
585  * Inconsistent, invalid return values from STREAM (QUERY EXISTS) when
586  * using the EMX port of Regina under OS/2. This bug possible on other
587  * platforms.
588  * Reported by: Dennis Baeris
589  * Bug Number:  027
590  * Fixed by:    Mark Hessling
591  * Fixed in:    0.08h
592  */
593 fn = 'bug027.txt'
594 Call Stream fn, 'C', 'OPEN WRITE REPLACE'
595 Call Lineout fn,'One line'
596 Call Stream fn, 'C', 'CLOSE'
597 line = Linein(fn)
598 Say 'Linein(fn) returned:' '"'line'"' 'should be return "One Line"'
599 stat = Stream(fn,'S')
600 Say 'Stream(fn,"S") returned:' '"'stat'"' 'should be return "READY"'
601 line = Linein(fn)
602 Say 'Linein(fn) returned:' '"'line'"' 'should be return ""'
603 stat = Stream(fn,'S')
604 Say 'Stream(fn,"S") returned:' '"'stat'"' 'should be return "NOTREADY"'
606 /*--------------------------------------------------------------------
607  * If Regina was invoked through the SAA interface, and the script named in
608  * the invocation did not exist, the error message did not correctly name
609  * it, or crashed.
610  * Reported By: Jim Hasslacher, Jr.
611  * Bug Number:  029
612  * Fixed By:    Jim Hasslacher, Jr.
613  * Fixed in:    0.08h
614  */
616 /*--------------------------------------------------------------------
617  * Odd behaviour with DELWORD BIF.
618  * Line 1 gives '0' and this is correct (no '10' in the string).
619  * Line 3 makes the same string as used in line 1 and puts it into a.
620  * Line 4 now gives 3 !!!! Yet there is no '10' in there at all
621  * The rest is just to prove my point the length of the string doensn't change
622  * but after the strip all works as it should...
623  * I think the problem occurs when the first character of the searchstring and
624  * that of the deleted word are the same.
625  *   MH - the problem occurs if the word following the word to be deleted is
626  *   1 character shorter than the word being deleted and starts with the
627  *   same characters as the word being deleted.  Seems the check for a word
628  *   at the end of the string checks 1 character past the end of the string.
629  * Reported By: Thomas Zobl
630  * Bug Number:  030
631  * Fixed By:    Mark Hessling
632  * Fixed in:    0.08h
633  */
634 Say Wordpos('10','2 11 1')
636 b = '2 11 10 1'
637 a = Delword('2 11 10 1',3,1)
638 Say Wordpos('10',a)
640 Say Length(a)
641 a = Strip(a)
642 Say Wordpos('10',a)
643 Say Length(a)
645 /*--------------------------------------------------------------------
646  * Passing a lower or mixed case variable name to RexxVariablePool() when
647  * setting a Rexx variable fails.
649  * Reported By: Bill Potvin, II
650  * Bug Number:  031
651  * Fixed By:    Mark Hessling
652  * Fixed in:    0.08h
653  */
654 Returncode = SysFileTree("*","Files.")
655 say files.0 /* always returns FILES.0 */
657 /*--------------------------------------------------------------------
658  * When registering an external function from within the API, an attempt
659  * to register a function that is already loaded results in a return code
660  * of 1 NOT the correct value of 10 (RXFUNC_DEFINED).
662  * Reported By: Bill Potvin, II
663  * Bug Number:  033
664  * Fixed By:    Mark Hessling
665  * Fixed in:    0.08h
666  */
668 /*--------------------------------------------------------------------
669  * The STREAM BIF using QUERY EXISTS incorrectly returns a file name
670  * when the file does not exist under some circumstances.
671  * If in directory e:\regina and a file exists: e:\config.sys, then
672  * Stream('e:\config.sys', 'C', 'QUERY EXISTS') returns:
673  *  e:\regina\config.sys
675  * Reported By: Dennis Baeris
676  * Bug Number:  034
677  * Fixed By:    Mark Hessling
678  * Fixed in:    0.08h
679  */
681 /*--------------------------------------------------------------------
682  * The following code causes Regina to crash.
683  * Reported by: Florian Grosse-Coosmann
684  * Bug Number:  032
685  * Fixed By:    Florian Grosse-Coosmann
686  * Fixed in:    0.08h
687  */
688 Name = "Florian"
689 call MyName Name
690 call MyName2 Name
691 return 0
693 MyName:
694 say "Name =" Name ||  ",arg =" arg(1)
695 Name = "Coosmann"
696 say "Name =" Name ||  ",arg =" arg(1)
697 return
699 MyName2:
700 say "Name =" Name ||  ",arg =" arg(1)
701 Name = "Grosse-Coosmann"
702 say "Name =" Name ||  ",arg =" arg(1)
703 return
705 /*--------------------------------------------------------------------
706  * When calling an external subroutine and it is found by use of
707  * REGINA_MACROS environment variable, PARSE SOURCE does not return
708  * the filename of the file.
710  * Reported By: Steve Menschel
711  * Bug Number:  19991129-86098
712  * Fixed By:    Mark Hessling
713  * Fixed in:    0.08h
714  */
716 /*--------------------------------------------------------------------
717  * Access to the external environment when using regina.dll under OS/2
718  * was not possible.
719  * This was due to the way that regina.exe was incorrectly built.
721  * Reported By: Paul G Barnett
722  * Bug Number:  035
723  * Fixed By:    Mark Hessling
724  * Fixed in:    0.08h
725  */
727 /*--------------------------------------------------------------------
728  * Regina incorrectly handles DATE('L') for fractional seconds.
729  * The behaviour would result in consecutively displayed times like:
730  * 17:33:12.498812
731  * 17:33:13.512540
732  * 17:33:13.982322
733  * 17:33:13.049183
735  * Reported By: Dennis Baeris
736  * Bug Number:  ?????
737  * Fixed By:    Mark Hessling
738  * Fixed in:    2.0
739  */
741 /*--------------------------------------------------------------------
742  * CALL with parameters fails in various situations with syntax error.
743  * Reported by: Dennis Baeris
744  * Bug Number:  023
745  * Fixed by:    Anders Christensen
746  * Fixed in:    2.0
747  */
748 myargs = 'arg1 arg2'
749 Call "myprog" myargs /* syntax error */
750 Call "myprog"myargs  /* works */
751 Call Fred'1234'  /* syntax error */
753 /*--------------------------------------------------------------------
754  * Regina incorrectly results in parse error when EXIT called with
755  * non-numeric parameter.
756  * eg. EXIT "fred"
758  * Reported By: Dennis Baeris
759  * Bug Number:  20000323-75678
760  * Fixed By:    Mark Hessling
761  * Fixed in:    2.0
762  */
764 /*--------------------------------------------------------------------
765  * Regina get error when calling RETURN from top-level with a
766  * non-numeric parameter.
767  * eg. RETURN "fred"
769  * Reported By: Gerard Schildberger
770  * Bug Number:  20000325-12811
771  * Fixed By:    Mark Hessling
772  * Fixed in:    2.0
773  */
775 /*--------------------------------------------------------------------
776  * RANDOM would only return a maximum value of 32767 on many platforms.
778  * Reported By: Alan Bardgett
779  * Bug Number:  20000128-69102
780  * Fixed By:    Mark Hessling
781  * Fixed in:    2.0
782  */
784 /*--------------------------------------------------------------------
785  * The Regina parser incorrectly parses the sample code below, and
786  * returns the following error:
787  * Error 15 running "/home/mark/Regina-0.08h/bug030.rex", line 1: Invalid hexadecimal or binary constant
788  * Error 15.3: Only 0-9, a-f, A-F, and blank are valid in hexadecimal string; found "'<'x"
789  * Reported By: Mark Hessling
790  * Bug Number:  19991216-29512
791  * Fixed By: ??? pointed out that it is not a bug.
792  * Fixed in: 3.0.
793  */
794 Say '<'x'>'