Issue 4240: Remove Errors and Ambiguities from Code Examples in PL/I Mapping Specificat (pl1-ftf) Source: Progress Software (Mr. Francis Byrne, ) Nature: Uncategorized Issue Severity: Summary: (Note that the page numbers are those used by the PDF document, which says that there are 106 pages in all for this doc) PAGE 24 - the line: ======= 3 d fixed bin(31), should be: 3 d fixed bin(31) init(0), PAGE 25 - missing line: ======= after the line: do; insert: example_user_exceptions.d=1; /* 1=example_bad, 2=example_worse */ PAGE 26 correction: ======= The 'if', 'select' and 'when' statements were incorrect - what was in the document before was ambiguous. The first part (down to the second 'when' statement in the code on page 26 should be replaced with the following (same as before with the if/select/when amendments): CHECK_ERRORS: PROC(FUNCTION_NAME) RETURNS(FIXED BIN(31)); dcl exc_name char(64); dcl exception_info char(64); if example_user_exception.d ^= 0 then do; display('example_user_exception'); strget(exception_id,64,exc_name); select(example_user_exception.d); when(1) do; display('value1 =' ||example_bad.value1); display('reason =' ||example_bad.reason); end; when(2) ... (as before in the document) ... PAGE 106 - code example mistake - as in page 26 above ======== The same happens on page 106 (the formatting of the code on the page also needs some tidying as far as format is concerned). On this page, the 'if' down to the second 'when' statement needs to be replaced with the 'if' block shown above. PAGE 31 ======= All the lines of code which say: if vtptr=sysnull() || p_vtargs=null should be replaced with: if vtptr=sysnull() || p_vtargs=sysnull() PAGE 33 ======= Amend the line: 3 ctl ptr, to be: 3 ctl ptr init(sysnull()), Resolution: resolved Revised Text: In section 1.14 Mapping for Exceptions After 'Maps to the following PL/I' the line in the PL/I code reading 3 d fixed bin(31), should read: 3 d fixed bin(31) init(0), After the text line 'The server signals an error to the client by using the PODERR function' in the begin of the following code example: After the line: do; insert the new lines: example_user_exceptions.d=1; /* 1=example_bad, 2=example_worse */ After the line 'To test for errors, the client should be set up as follows.' replace the PL/I code down to the second 'when' statement by the following code: CHECK_ERRORS: PROC(FUNCTION_NAME) RETURNS(FIXED BIN(31)); dcl exc_name char(64); dcl exception_info char(64); if example_user_exception.d ^= 0 then do; display('example_user_exception'); strget(exception_id,64,exc_name); select(example_user_exception.d); when(1) do; display('value1 =' ||example_bad.value1); display('reason =' ||example_bad.reason); end; when(2) ... (as before in the document) ... In section 1.16.4 Valuetype Example All lines of code which read: if vtptr=sysnull() || p_vtargs=null should be replaced by lines reading: if vtptr=sysnull() || p_vtargs=sysnull() Further down in the code, amend the line reading: 3 ctl ptr, to read: 3 ctl ptr init(sysnull()), In section 1.16.4 Valuetype Example From the 'if' statement down to the second 'when' statement, replace the PL/I code with the following code: if example_user_exception.d ^= 0 then do; display('example_user_exception'); strget(exception_id,64,exc_name); select(example_user_exception.d); when(1) /* user exception 'bad' */ do; display('value1 =' ||example_bad.value1); display('reason =' ||example_bad.reason); end; when(2) /* user exception 'worse' */ ... (as before in the document) ... Actions taken: March 30, 2001: received issue August 3, 2001: closed issue Discussion: The corrections proposed in the issue have been adopted in full and incorporated into the resulting document. See 'Revised Text:' for details End of Annotations:===== Date: Fri, 30 Mar 2001 17:57:56 -0500 From: "Manfred R. Koethe" X-Mailer: Mozilla 4.72 [en] (WinNT; I) X-Accept-Language: en MIME-Version: 1.0 To: juergen@omg.org CC: issues@omg.org Subject: PL/I issues 4239 and 4240, as discussed Content-Type: multipart/mixed; boundary="------------454CF02D332DC13970F4A463" X-UIDL: ,V2!!N\md9$iN!!U8?e9 Status: RO Juergen, Attatched is the text for the two PL/I issues, as we discussed on the phone earlier today. Could you please stuff them into the database when you are back in the office. Thank you very much in advance. Gruss, Manfred 4239 Typographical Errors in PL/I Mapping Specification 4240 Remove Errors and Ambiguities from Code Examples in PL/I Mapping Specification ___________________ / Manfred R. Koethe \____________________________________________ IONA Technologies, Inc. Phone: +[1](781)902-8557 200 West Street Fax: +[1](781)902-8001 Waltham, MA 02451, USA E-Mail: manfred.koethe@iona.com Typographical errors in PL/I Mapping Specification Submitted by Mr. Francis Byrne, IONA Technologies (Note that the page numbers are those used by the PDF document, which says that there are 106 pages in all for this doc) GENERAL ======= Should 'Month Year', which appears on every odd-numbered page, be replaced with 'January 2001'? PAGE 12 ======= For the two contacts, I think that it should say 'Telephone:' for both, not 'Telephone:' for one and 'Tel:' for the other. PAGE 15 ======= Remove surplus periods after 'as is.' at the end of the paragraph. PAGE 34 ======= In section 1.16.6, the line: shown below in 1.4.1 should say: shown below in 1.16.7 PAGE 47 ======= Last line: TYPE(OBJECT should be: TYPE(OBJECT) Remove Errors and Ambiguities from Code Examples in PL/I Mapping Specification Submitted by Mr. Francis Byrne, IONA Technologies (Note that the page numbers are those used by the PDF document, which says that there are 106 pages in all for this doc) PAGE 24 - the line: ======= 3 d fixed bin(31), should be: 3 d fixed bin(31) init(0), PAGE 25 - missing line: ======= after the line: do; insert: example_user_exceptions.d=1; /* 1=example_bad, 2=example_worse */ PAGE 26 correction: ======= The 'if', 'select' and 'when' statements were incorrect - what was in the document before was ambiguous. The first part (down to the second 'when' statement in the code on page 26 should be replaced with the following (same as before with the if/select/when amendments): CHECK_ERRORS: PROC(FUNCTION_NAME) RETURNS(FIXED BIN(31)); dcl exc_name char(64); dcl exception_info char(64); if example_user_exception.d ^= 0 then do; display('example_user_exception'); strget(exception_id,64,exc_name); select(example_user_exception.d); when(1) do; display('value1 =' ||example_bad.value1); display('reason =' ||example_bad.reason); end; when(2) ... (as before in the document) ... PAGE 106 - code example mistake - as in page 26 above ======== The same happens on page 106 (the formatting of the code on the page also needs some tidying as far as format is concerned). On this page, the 'if' down to the second 'when' statement needs to be replaced with the 'if' block shown above. PAGE 31 ======= All the lines of code which say: if vtptr=sysnull() || p_vtargs=null should be replaced with: if vtptr=sysnull() || p_vtargs=sysnull() PAGE 33 ======= Amend the line: 3 ctl ptr, to be: 3 ctl ptr init(sysnull()),