1 01/30/84  mlr_
 2 
 3 
 4 Entry points in mlr_:
 5      (List is generated by the help command)
 6 
 7 
 8 :Entry:  mlr_:  01/30/84  mlr_
 9 
10 Function:  moves a character string by copying the characters from left
11 to right.
12 
13 
14 Syntax:
15 declare mlr_ entry (ptr, fixed bin(21), ptr, fixed bin(21));
16 call mlr_ (input_ptr, input_lth, output_ptr, output_lth);
17 
18 
19 Arguments:
20 input_ptr
21    is a pointer to the input character string.  (Input)
22 input_lth
23    is the length of the input string in characters.  (Input)
24 output_ptr
25    is a pointer to the output character string.  (Input)
26 output_lth
27    is the length of the output string in characters.  (Input)
28 
29 
30 Notes: If the output string is shorter than the input string, only the
31 first output_lth characters of the input string are moved.  If the
32 output string is longer than the input string, the output string is
33 padded on the right with blanks.
34 
35 
36 The following call to mlr_ --
37 
38      call mlr_ (addcharno (addr (text), start+N), lth,
39                 addcharno (addr (text), start), lth);
40 
41 where N is a positive number is equivalent to the following PL/I loop--
42 
43      do i = 1 to lth;
44        substr (text, (start+i-1), 1) = substr (text, (start+N+i-1), 1);
45      end;
46 
47 which is also equivalent to the PL/I statement --
48 
49      substr (text, start, lth) = substr (text, start+N, lth);
50 
51 
52 Due to the nature of the Multics hardware, if the input and output
53 strings overlap and the output string is to the right of the input
54 string (ie:  N, above, were a negative number), the results of the call
55 to mlr_ will be different from the results of the above PL/I loop.