Well, in the TSO environment there's a service to build messages from templates, plugging in variables. ISPF has similar services.
-- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 ________________________________________ From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Charles Mills [charl...@mcn.org] Sent: Thursday, June 11, 2020 11:26 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: [External] Re: "Everyone wants to retire mainframes" That's cool, the is/are and pluralization. I never bothered -- I have always gone with (s) as in "You have %d dog(s)" Yes, I really upped my error message game when I went from assembler to C++. Yes, you can do anything in assembler, but unless you have or devote time to developing macros such as you describe, you tend to end up with less user-friendly messages. With C/C++ there is no excuse. On the other hand, as a guy who has been responsible for product management and a support desk, I used to run around the office yelling that our next product was only going to have one error message "AN ERROR OCCURRED" after yet another exchange like this: Tech: XYZ support, may I help you? Customer: Yes, XYZ blew up yesterday. Tech: Our apologies. What was the error message? Customer: Something about an error occurred. Tech: What was the exact message number? We could use that to troubleshoot the issue. Customer: I don't know. We already deleted the SYSOUT. Charles -----Original Message----- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Tom Brennan Sent: Wednesday, June 10, 2020 4:33 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: [External] Re: "Everyone wants to retire mainframes" Things like numeric conversion and scooting text around are difficult in assembler, so I would tend to put that off until later [1]. Then one day I coded a macro and underlying subroutine so I could do something like this: #PRINTF SYSPRINT,'DFS0929I BLDL ON DDNAME %s FAILED with RC=%d FOR MEMBER %s',(DDNAME,(R15),MEMBER) ... and suddenly I was far more likely to include the extra details with the initial coding. I just looked at some doc for that old code and found this section, so I guess I was having some fun with various options to help display what I assume is correct English: .* PLURALIZER EXAMPLE (options P and A): .* .* #SPRINTF OUTBUF,'You have %pd dogs',NUMDOGS .* .* produces: You have 1 dog .* You have 2 dogs .* .* #SPRINTF OUTBUF,'There %ad dogs',NUMDOGS .* .* produces: There is 1 dog .* There are 2 dogs ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN