Document Number: AUSTIN/132 Title: XCU/ft/4 Aardvark Change Request Report (draft) Revision Date: 2002-09-06 Source: Andrew Josey, Chair Action: for review This report contains the draft dispositions of the aardvark comments submitted against the XCU/ft/4 (4th batch of FT aardvark) text. Aardvark Summary Table (XCU FT) ______________________ ERN 1 Accept ERN 2 Accept ERN 3 Accept ERN 4 Accept as marked ERN 5 Accept as marked ERN 6 Accept ERN 7 Accept _____________________________________________________________________________ COMMENT Enhancement Request Number 1 bjh21@netbsd.org Defect in XCU 2.6.3 (rdvk# 1) {bjh21:sh commsub it} Thu, 8 Aug 2002 16:19:33 +0100 (BST) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 40 Line: 1676-1678 Section: 2.6.3 Problem: A sentence here reads: "If a command substitution occurs inside double-quotes, it shall not be performed on the results of the substitution." The "it" here has no clear referent. The most obvious one is "a command substitution", but that's meaningless since the substitution can't have any results if it's not performed. IEEE Std 1003.2-1992 has the following instead, which is rather more meaningful: "If a command substitution occurs inside double quotes, field splitting and pathname expansion shall not be performed on the results of the substitution." Action: Replace "it" with "field splitting and pathname expansion". _____________________________________________________________________________ OBJECTION Enhancement Request Number 2 eggert@twinsun.com Defect in XCU diff (rdvk# 11) {eggert20020514a} Tue, 14 May 2002 13:41:57 +0100 (BST) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 320 Line: 12320 Section: diff Problem: Defect code : 1. Error POSIX specifies a behavior for 'diff -c' that does not agree with existing practice when contexts that contain zero lines or one line. Here is an example, showing current existing practice: $ touch empty $ echo hello >oneline $ /usr/bin/diff -c empty oneline *** empty Fri May 10 12:22:48 2002 --- oneline Fri May 10 12:22:58 2002 *************** *** 0 **** --- 1 ---- + hello POSIX does not allow this behavior: it requires that two line numbers must appear in each line range of output. That is, POSIX presumably would require output that looked like this instead: *** empty Fri May 10 12:22:48 2002 --- oneline Fri May 10 12:22:58 2002 *************** *** 1,0 **** --- 1,1 ---- + hello No "diff" implementations behave that way, though. Also, POSIX does not specify how to determine the line number of an empty range. Action: Change XCU page 320 lines 12320-12321 to read: Next, the range of lines in file1 shall be written in the following format if the range contains two or more lines: "*** %d,%d ****\n", , and the following format otherwise: "*** %d ****\n", The ending line number of an empty range shall be the number of the preceding line, or 0 if the range is at the start of the file. Change XCU page 321 lines 12329-12330 to read: Next, the range of lines in file2 shall be written in the following format if the range contains two or more lines: "--- %d,%d ----\n", , and the following format otherwise: "--- %d ----\n", _____________________________________________________________________________ OBJECTION Enhancement Request Number 3 gwc@opengroup.org Defect in XCU ed (rdvk# 10) [gwc ed G] Fri, 24 May 2002 15:38:40 +0100 _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 340 Line: 13069 Section: ed Problem: Defect code : 1. Error A problem with the description of the ed "g" command was fixed in the revision by adding the text "Any line modified by the command list shall be unmarked." The same problem also affects the "G" command, but this was not corrected. Presumably this was an oversight, not intentional. Action: After "... affect any line in the buffer.", add "Any line modified by the command shall be unmarked." _____________________________________________________________________________ OBJECTION Enhancement Request Number 4 don.cragun@sun.com Defect in XCU file utility (rdvk# 2) {DWC-file:1} Wed, 31 Jul 2002 00:43:11 +0100 (BST) _____________________________________________________________________________ Accept_____ Accept as marked below_X___ Duplicate_____ Reject_____ Rationale for rejected or partial changes: Make the following changes: SYNOPSIS Change P442, L17024 (the entire SYNOPSIS section) to: file [-dh][-M file][-m file] file... file -i [-h] file... with both lines shaded with a UP marking. DESCRIPTION Replace P442, L17027-17039 (the entire DESCRIPTION section) with: The file utility shall perform a series of tests in sequence on each specified file in an attempt to classify it: 1. If file does not exist, cannot be read, or its file status could not be determined, the output shall indicate that the file was processed, but that its type could not be determined. 2. If the file is not a regular file, its file type shall be identified. The file types directory, FIFO, socket, block special, and character special shall be identified as such. Other implementation-defined file types may also be identified. If file is a symbolic link, by default the link shall be resolved and file shall test the type of file referenced by the symbolic link. (See the -h and -i options below.) 3. If the length of file is zero, it shall be identified as an empty file. 4. The file utility shall examine an initial segment of file and shall make a guess at identifying its contents based on position sensitive tests. (The answer is not guaranteed to be correct. See the -d, -M and -m options below.) 5. The file utility shall examine file and make a guess at identifying its contents based on context sensitive default system tests. (The answer is not guaranteed to be correct.) 6. The file shall be identified as a data file. OPTIONS Change the description of the -d option on P442, L17044 to: -d Apply any position sensitive default system tests and context sensitive default system tests to the file. This is the default if no -M nor -m option is specified. Change the description of the -i, -M, and -m options, and the interactions between options on P442, L17048-17060 to: -i If a file is a regular file, do not attempt to classify the type of the file further, but identify the file as specified in the STDOUT section." -M file Specify the name of a file containing position sensitive tests that shall be applied to a file in order to classify it (see the EXTENDED DESCRIPTION). No position sensitive default system tests nor context sensitive default system tests shall be applied unless the -d option is also specified. -m file Specify the name of a file containing position sensitive tests that shall be applied to a file in order to classify it (see the EXTENDED DESCRIPTION). If the -m option is specified without specifying the -d option or the -M option, position sensitive default system tests shall be applied after the position sensitive tests specified by the -m option. If the -M option is specified with the -d option, the -m option, or both; or the -m option is specified with the -d option; the concatenation of the position sensitive tests specified by these options shall be applied in the order specified by the appearance of these options. If a -M or -m file option-argument is -, the results are unspecified. STDOUT Change the text on P443-444, L17089-17115 to: The values for are unspecified, except that in the POSIX locale, if file is identified as one of the types listed in the following table, shall contain (but is not limited to) the corresponding string, unless the file is identified by a position sensitive test specified by a -M or -m option. Each space shown in the strings shall be exactly one . Table 4-8 File Utility Output Strings _____________________________________________________________________________ If file is: shall contain Notes the string: _____________________________________________________________________________ nonexistent cannot open Block special block special 1 Character special character special 1 Directory directory 1 FIFO fifo 1 Socket socket 1 Symbolic link symbolic link to 1 Regular file regular file 1,2 Empty regular file empty 3 regular file that cannot be read cannot open 3 Executable binary executable 4,6 ar archive library (see ar) archive 4,6 Extended cpio format (see pax) cpio archive 4,6 Extended tar format (see ustar in pax) tar archive 4,6 Shell script commands text 5,6 C-language source c program text 5,6 FORTRAN source fortran program text 5,6 regular file whose type cannot be determined data _____________________________________________________________________________ Notes: 1. This is a file type test. 2. This test is applied only if the -i option is specified. 3. This test is applied only if the -i option is not specified. 4. This is a position sensitive default system test. 5. This is a context sensitive default system test. 6. Position sensitive default system tests and context sensitive default system tests are not applied if the -M option is specified unless the -d option is also specified. In the POSIX locale, if file is identified as a symbolic link (see the -h option), the following alternative output format shall be used: "%s: %s %s\n", , , " If the file named by the file operand does not exist, cannot be read, or the type of the file named by the file operand cannot be determined, this shall not be considered an error that affects the exit status. EXTENDED DESCRIPTION Change "one test per line" on P444, L17121 to "one position sensitive test per line". APPLICATION USAGE Add to end of paragraph on P446, L17223-17225: Note also that on systems that recognize shell script files starting with "#!" as executable files, these may be identified as executable binary files rather than as shell scripts. RATIONALE Add new paragraphs after P447, L17248: The IEEE Std 1003.1-2001 description of default system tests and the interaction between the -d, -M, and -m options didn't clearly indicate that there were two types of "default system tests". The "position sensitive tests" determine file types by looking for certain string or binary values at specific offsets in the file being examined. These position sensitive tests were implemented in historical systems using the magic file described above. Some of these tests are now built into the file utility itself on some implementations so the output can provide more detail than can be provided by magic files. For example, a magic file can easily identify a core file on most implementations, but can't name the program file that dropped the core. A magic file could produce output like: /home/dwc/core: ELF 32-bit MSB core file SPARC Version 1 but by building the test into the file utility, you could get output like: /home/dwc/core: ELF 32-bit MSB core file SPARC Version 1, from 'testprog' These extended built-in tests are still to be treated as position sensitive default system tests even if they are not listed in /etc/magic or any other magic file. The context sensitive default system tests were always built into the file utility. These tests looked for language constructs in text files trying to identify shell scripts, C, FORTRAN, and other computer language source files, and even plain text files. With the addition of the -m and -M options the distinction between position sensitive and context sensitive default system tests became important becuase the order of testing is important. The context sensitive system default tests should never be applied before any position sensitive tests even if the -d option is specified before a -m option or -M option due to the high probability that the context sensitive system default tests will incorrectly identify arbitrary text files as text files before position sensitive tests specified by the -m or -M option would be applied to give a more accurate identification. Leaving the meaning of -M - and -m - unspecified allows an existing prototype of these options to continue to work in a backwards compatible manner. (In that implementation, -M - was roughly equivalent to -d in this specification.) _____________________________________________________________________________ Page: 442-447 Line: 17024-17121 Section: file Problem: Defect code : 1. Error *** Background Information *** The file utility has typically been implemented with: T1. a bunch of built-in tests to check for the existence and ability to get file status for the file, T2. a bunch of built-in tests to report the file type for non-regular files, T3. a check for an empty regular file, T4a. tests provided by the implementation that could be specified in a magic file (/etc/magic on many implementations) based on certain values being found at certain locations in a file, T4b. if the implementation supported a -m option, any tests specified by the magic files specified by the -m option (on some historic implementations, step T4b just replaced processing of /etc/magic in step T4a instead of being an additional step), T4c. perform any tests specified by -M options (this is new; it was invented for P1003.2b and didn't exist on any historic implementations as far as I know), T5. more built-in tests that look for certain strings in context, and T6. if none of the above identified a probable file type, a statement that the file contains "data". Note that many tests that could be implemented using a magic file are now frequently built into the file utility so it can provide more information than magic file formats allow (examples: a magic file can identify that a file is a coredump file, but can't print the name of the executable file that dropped core; a magic file can identify that a text file starting with #! is an executable shell script, but can't print the name of the interpreter used, except for a specific list of known interpreters). The tests listed in T5 above try to determine if a file is a Shell script, C-language source, FORTRAN source and other file types that are determined by examining the file contents looking for various strings or patterns that don't appear at specific locations. Note that if these tests are applied before tests in magic files specified by the -m or -M options and if these tests report that a file is ascii text (containing no binary data), no tests from user specified magic files following a -d option will ever be applied to non-binary files. Therefore these T5 tests need to be applied after any user supplied magic files specified by -m and -M options; not at the time a -d option is processed. P1003.2b and XCU6 gave users the ability to specify the -M and -m options to replace or add to "default system tests" and added the -d option to specify when "default system tests" were to be applied, but never defined the term "default system tests". I believe that the intent of the changes from P1003.2b were to allow users to specify additional tests (-m) to be performed in step T4b above or alternative tests (-M) to be performed instead of steps T4a and T5 above. (One might also argue that test T3 should be skipped if -M is specified, but I don't believe that was the original intent.) The description of file lists four set of tests on P442, L17028-17037. The text on lines 17028-17030 correspond to step T2 above (tests here checked for files of type directory, FIFO, socket, block special, character special, and when appropriate symbolic links as specified in Table 4-8). The text on line 17032 corresponds to step T3 above (this tests for an empty regular file as specified in Table 4-8). The text on lines 17033-17035 corresponds to steps T4a (including tests for executable binary, ar archive libraries, cpio archives and ustar archives as specified in Table 4-8) and T5 (including tests for shell scripts (not already identified as executable binaries), C-language source, and FORTRAN source specified in Table 4-8) above. The text on lines 17036-17037 corresponds to step T1 above. Step T6 above isn't mentioned in the description, but is specified in the stdout section on P444, lines 17113-17115. *** Detailed Interpretation Issues *** Issue 1:In the last paragraph of the options section (P442, L17057-17059) it says: "If a -M option is specified, no tests other than those specified using the -d, -M, and -m options shall be applied to the file.". Taken literally, this means that steps T1, T2, T3 and T6 have to be skipped. It clearly makes no sense to try to apply magic file tests to directories and other special files, to non-existent files, nor to empty regular files. I believe the intent was that steps T4a, T4b, T4c, and T5 would only be executed if explicitly requested by -d, -m, -M, and -d options, respectively, but that the other tests would continue to be executed. Is this correct? Issue 2:When the description of -d says that "default system tests" are to be applied, the description of -M says that "default system tests" shall not be applied, and the text at the end of the options sections talks about when "default system tests" are to be applied, what does "default system tests" mean? And, does it mean the same thing everywhere it is used? I believe that the intent was that they are the same. But, the fact that there are two distinct sets of default system tests (steps T4a and T5) causes confusion later. I believe that the intent was as follows: line 17044: description of -d option: I believe "Apply any default system tests to the file." meant that tests in steps T4a and T5 were to be applied. Is this correct? line 17052: description of -M option: I believe "No default system tests shall be applied." meant that tests in steps T4a and T5 were not to be applied unless a -d option was also specified on the command line. Is this correct? line 17056-17057 "concatenation of tests specified" in description of interactions between multiple instances of -m, -d, or -M options and line 17059-17060: description of what happens if neither -d nor -M options are specified: I believe that "If multiple instances of the -m, -d, and -M options are specified, the concatenation of the tests specified, in the order specified, shall be the set of tests that are applied." and "If neither the -d nor the -M options are specified, any default system tests shall be applied after any tests specified using the -m option." really means that steps T4b, T4a, and T4c should be applied, respectively, in sequence for each occurrence of a -m, -d, or -M option. Then, if no -M option and no -d option is specified step T4a shall be applied, And, finally, if no -M option is specified or if both a -M option and a -d option are specified, step T5 should be applied after all step T4a, T4b, and T4c tests are applied. Is this correct? Note that if this if any of these are not correct, the rationale on line 17246 concerning the -d option and on line 17248 concerning the -M option may need to be changed. See also Issue 5 below. Issue 3:In the stdout section, certain strings are required to be written whenever files of these types are found when running in the POSIX locale. Taken literally, this may require the file utility to modify message fields found in magic files named by -M and -m options unless a -d option is specified before -M or -m options that specify magic files containing tests for any of these types of files. I believe the intent was that if these file types were detected in steps T2, T3, T4a, T5, and T6 the type field would contain these strings when run in the POSIX locale; not that these strings would be required if detected in steps T4b and T4c (by tests in user supplied magic files). Is this correct? Issue 4:The -i option essentially specifies that no -d, -M, or -m options are to be processed. But there is no indication that these options are mutually exclusive and no indication that the last specified of these groups of conlicting options wins. I believe that the intent was that the use of the -i option is mutually exclusive with the use of the -d, -M, and -m options. Is this correct? Issue 5:The SYNOPSIS section indicates that only one -m option and only one -M option are allowed on a command line (no ... after the [-M file] and [-m file] entries). But, the OPTIONS section implies that multiple -M options are allowed and maybe multiple -d options and -m options as well. (It says "If a -M option" instead of "If the -M option" on P442, L17057 implying that multiple -M options can be specified. When it says "If multiple instances of the -m, -d, or -M options are specified," on P442, L17056 it is not clear whether this means that each option can be specified more than one time or if it means that -d, -M, and -m are not mutually exclusive, but each should only be specified once.) Note that specifying -d more than once can never identify any more files than specifying -d once, unless the files are changing while the file command is running.. I believe that the intent was that no more than one occurrence each of the -d, -M, and -m options needs to be accepted, but they are not mutually exclusive. Is this correct? Issue 6:The alternative output format for displaying symbolic link information is specified to be used in all locales. Similarly, the string "cannot open" and "data" are specified to be used in all locales to indicate file operands that don't exist or can't be read, or if the type can't be determined. And, the string "regular file" is specified to be used in all locales in the description of the -i option.. I believe that the intent was that this output format and these strings should apply only in the POSIX locale. Is this correct? Action: If the answers to all of my "Is this correct?" questions is "Yes.", the following changes could be applied to XCU6 to make the specification unambiguously describe what I believe was intended. SYNOPSIS Change P442, L17024 (the entire SYNOPSIS section) to: file [-dh][-M file][-m file] file... file -i [-h] file... with both lines shaded with a UP marking. DESCRIPTION Replace P442, L17027-17039 (the entire DESCRIPTION section) with: The file utility shall perform a series of tests in sequence on each specified file in an attempt to classify it: 1. If file does not exist, cannot be read, or its file status could not be determined, the output shall indicate that the file was processed, but that its type could not be determined. 2. If the file is not a regular file, its file type shall be identified. The file types directory, FIFO, socket, block special, and character special shall be identified as such. Other implementation-defined file types may also be identified. If file is a symbolic link, by default the link shall be resolved and file shall test the type of file referenced by the symbolic link. (See the -h and -i options below.) 3. If the length of file is zero, it shall be identified as an empty file. 4. The file utility shall examine an initial segment of file and shall make a guess at identifying its contents based on position sensitive tests. (The answer is not guaranteed to be correct. See the -d, -M and -m options below.) 5. The file utility shall shall examine an initial segment of file and small make a guess at identifying its contents based on context sensitive default system tests. (The answer is not guaranteed to be correct.) 6. The file shall be identified as a data file. OPTIONS Change the description of the -d option on P442, L17044 to: -d Apply any position sensitive default system tests and context sensitive default system tests to the file. This is the default if no -M nor -m option is specified. Change the description of the -i, -M, and -m options, and the interactions between options on P442, L17048-17060 to: -i If a file is a regular file, do not attempt to classify the type of the file further, but identify the file as specified in the STDOUT section." -M file Specify the name of a file containing position sensitive tests that shall be applied to a file in order to classify it (see the EXTENDED DESCRIPTION). No position sensitive default system tests nor context sensitive default system tests shall be applied unless the -d option is also specified. -m file Specify the name of a file containing position sensitive tests that shall be applied to a file in order to classify it (see the EXTENDED DESCRIPTION). If the -m option is specified without specifying the -d option or the -M option, position sensitive default system tests shall be applied after the position sensitive tests specified by the -m option. If the -M option is specified with the -d option, the -m option, or both; or the -m option is specified with the -d option; the concatenation of the position sensitive tests specified by these options shall be applied in the order specified by the appearance of these options. STDOUT Change the text on P443-444, L17089-17115 to: The values for are unspecified, except that in the POSIX locale, if file is identified as one of the types listed in the following table, shall contain (but is not limited to) the corresponding string, unless the file is identified by a position sensitive test specified by a -M or -m option. Each space shown in the strings shall be exactly one . Table 4-8 File Utility Output Strings _____________________________________________________________________________ If file is: shall contain Notes the string: _____________________________________________________________________________ nonexistent cannot open Block special block special 1 Character special character special 1 Directory directory 1 FIFO fifo 1 Socket socket 1 Symbolic link symbolic link to 1 Regular file regular file 1,2 Empty regular file empty 3 regular file that cannot be read cannot open 3 Executable binary executable 4,6 ar archive library (see ar) archive 4,6 Extended cpio format (see pax) cpio archive 4,6 Extended tar format (see ustar in pax) tar archive 4,6 Shell script commands text 5,6 C-language source c program text 5,6 FORTRAN source fortran program text 5,6 regular file whose type cannot be determined data _____________________________________________________________________________ Notes: 1. This is a file type test. 2. This test is applied only if the -i option is specified. 3. This test is applied only if the -i option is not specified. 4. This is a position sensitive default system test. 5. This is a context sensitive default system test. 6. Position sensitive default system tests and context sensitive default system tests are not applied if the -M option is specified unless the -d option is also specified. In the POSIX locale, if file is identified as a symbolic link (see the -h option), the following alternative output format shall be used: "%s: %s %s\n", , , " If the file named by the file operand does not exist, cannot be read, or the type of the file named by the file operand cannot be determined, this shall not be considered an error that affects the exit status. EXTENDED DESCRIPTION Change "one test per line" on P444, L17121 to "one position sensitive test per line". APPLICATION USAGE Add to end of paragraph on P446, L17223-17225: Note also that on systems that recognize shell script files starting with "#!" as executable files, these may be identified as executable binary files rather than as shell scripts. RATIONALE Add new paragraphs after P447, L17248: The IEEE Std 1003.1-2001 description of default system tests and the interaction between the -d, -M, and -m options didn't clearly indicate that there were two types of "default system tests". The "position sensitive tests" determine file types by looking for certain string or binary values at specific offsets in the file being examined. These position sensitive tests were implemented in historical systems using the magic file described above. Some of these tests are now built into the file utility itself on some implementations so the output can provide more detail than can be provided by magic files. For example, a magic file can easily identify a core file on most implementations, but can't name the program file that dropped the core. A magic file could produce output like: /home/dwc/core: ELF 32-bit MSB core file SPARC Version 1 but by building the test into the file utility, you could get output like: /home/dwc/core: ELF 32-bit MSB core file SPARC Version 1, from 'testprog' These extended built-in tests are still to be treated as position sensitive default system tests even if they are not listed in /etc/magic or any other magic file. The context sensitive default system tests were always built into the file utility. These tests looked for language constructs in text files trying to identify shell scripts, C, FORTRAN, and other computer language source files, and even plain text files. With the addition of the -m and -M options the distinction between position sensitive and context sensitive default system tests became important becuase the order of testing is important. The context sensitive system default tests should never be applied before any position sensitive tests even if the -d option is specified before a -m option or -M option due to the high probability that the context sensitive system default tests will incorrectly identify arbitrary text files as text files before position sensitive tests specified by the -m or -M option would be applied to give a more accurate identification. _____________________________________________________________________________ COMMENT Enhancement Request Number 5 gwc@opengroup.org Defect in XCU patch (rdvk# 14) [gwc patch ifdef] Fri, 7 Jun 2002 16:10:46 +0100 _____________________________________________________________________________ Accept_____ Accept as marked below_X___ Duplicate_____ Reject_____ Rationale for rejected or partial changes: Add to line 26489 p 688 If the patched file is processed with the C preprocessor, where the macro "define" is defined, the output shall contain the changes from the patch file, otherwise the output shall not contain the patches specified in the patch file. _____________________________________________________________________________ Page: 688 Line: 26482 Section: patch Problem: Defect code : 3. Clarification required The description of the patch -D option does not indicate which way round the ifdef selection should be. Given the file source.c and a patch to be applied to it, when patch is used as follows: patch -D DEFNAME source.c < patchfile is compiling the modified source.c *with* -D DEFNAME equivalent to compiling the original version of source.c, or is compiling the modified source.c *without* -D DEFNAME equivalent to compiling the original version of source.c? There are existing implementations of patch which differ in this respect. Action: The options would seem to be ... a. State that the behaviour is unspecified, and add a note under APPLICATION USAGE to warn application writers about it. b. Require that the ifdef selection is one way round or the other. Which way round would depend on historical behaviour and how many existing implementations do it each way. _____________________________________________________________________________ OBJECTION Enhancement Request Number 6 ken.dawson@sun.com Defect in XCU pax options (rdvk# 18) {sunw-pax-01} Thu, 20 Jun 2002 23:50:22 +0100 (BST) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 701 Line: 27030-27065 Section: pax Problem: Defect code : 1. Error The specification of the exthdr.name (and globexthdr.name) option (and default values) creates a potential race condition between two different processes extracting identically-named files from pax-format archives. The default value for exthdr.name is %d/PaxHeaders/%f and the default value for globexthdr.name is %d/GlobalHead.%n There is no way for the implemenation (or the user) to ensure that different instances of pax extracting a file named "/a/b/foo" will not collide when processing the extended header information associated with "foo". What provision can be made so that this race condition is avoided? Action: Replace the text @P701, L27042 with the following: 27042 %p The process id of the pax process. %% A '%' character. Replace the text @P701, L27046 with the following: 27046 %d/PaxHeaders.%p/%f Replace the text @P702, L27059 with the following: 27059 %p The process id of the pax process. %% A '%' character. Replace the text @P702, L27063 with the following: 27063 %d/GlobalHead.%p.%n _____________________________________________________________________________ EDITORIAL Enhancement Request Number 7 gwc@opengroup.org Defect in XCU pax (rdvk# 3) [gwc pax -x B] Fri, 9 Aug 2002 17:40:03 +0100 _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 703 Line: 27119,27122 Section: pax Problem: Defect code : 1. Error Spurious references to "-x B format" Action: Change "-x B" to "-x pax" on lines 27119 and 27122.