1 03/31/83  nd_handler_
 2 
 3 
 4 Entry points in nd_handler_:
 5    (List is generated by the help command)
 6 
 7 
 8 :Entry: nd_handler_: 02/08/83  nd_handler_
 9 
10 
11 Function: attempts to resolve the name duplication caused when a
12 program tries to create a segment, multisegment file, or link in a
13 directory that already contains an entry by the same name.  If the
14 existing entry has additional names, nd_handler_ tries to delete the
15 name needed for the new entry and, if successful, prints a warning
16 message.  If the existing entry has only one name, nd_handler_ queries
17 the user whether or not to delete it.  A zero status code in either
18 case means that nd_handler_ has succeeded, and the calling program can
19 retry creating the new entry.
20 
21 
22 Syntax:
23 dcl nd_handler_ entry (char(*), char(*), char(*), fixed bin(35));
24 call nd_handler_ (caller, dn, en, code);
25 
26 
27 Arguments:
28 caller
29    is the name of the calling program, used in printed messages.
30    (Input)
31 dn
32    is the pathname of the directory involved.  (Input)
33 en
34    is the name of the entry that the calling program wants to create.
35    (Input)
36 code
37    is a standard status code.  (Output) It can be:
38    0
39       if the old entryname has been removed.
40    error_table_$action_not_performed
41       if the user answered "no" to a query.
42    other codes
43       if the old entryname could not be removed for some other reason
44       such as lack of access.  An error message is then printed by
45       nd_handler_.
46 
47 
48 Notes:
49 This subroutine is usually called after another subroutine call has
50 returned error_table_$namedup.  If nd_handler_ returns a zero status
51 code, the other subroutine is called a second time.  A warning message
52 of the following kind is printed if the existing entry has multiple
53 names:
54    caller:  Name duplication.  Old name foo removed from >udd>m>Smith>oldseg.
55 If the existing entry has only one name, wording of the query depends
56 on the existing entry's type:
57    caller:  Do you want to delete the old segment <path>?
58    caller:  Do you want to delete the old multisegment file <path>?
59    caller:  Do you want to unlink the old link <path>?
60                    (Target <path2> exists.)
61               or:  (Target <path2> does not exist.)
62               or:  (Cannot get info for target <path2>.)
63               or:  (No target pathname.)
64 The following entry points have the same calling sequence.
65 
66 
67 :Entry:  del:  02/08/83 nd_handler_$del
68 
69 
70 Function:  This entry point queries whether or not to delete the
71 existing entry, regardless of whether or not it has additional names.
72 
73 
74 :Entry:  del_force:  02/08/83 nd_handler_$del_force
75 
76 
77 Function:  This entry point deletes the old entry (no query),
78 regardless of whether it has additional names.
79 
80 
81 :Entry:  force:  02/08/83 nd_handler_$force
82 
83 
84 Function:  This entry point deletes the existing entry if it has only
85 one name, rather than issue a query.