02/20/86 Message specifiers Most read_mail requests are capable of processing several messages in one invocation. The messages which a request is to process are identified by one or more message specifiers. Selecting deleted messages: Message specifiers normally refer only to the messages in a mailbox which have not been marked for deletion. Most requests accept the following control arguments to modify the set of messages which are available for selection by the request's message specifiers: -include_deleted, -idl includes all messages in the mailbox whether or not they have been deleted when interpreting any message specifiers to determine which messages to process. -only_deleted, -odl includes only those messages which have been deleted. -only_non_deleted, -ondl includes only those messages which have not been deleted. (Default) If a message specifier identifies a range of messages (see below), at least one message in that range must be of the appropriate type as determined by the above control arguments. Single message specifiers: The simplest form of a message specifier is simply a message number (eg: 3). Message numbers are assigned by read_mail when it first reads the mailbox. Message numbers do not change during the invocation even if messages are deleted. The following keywords can be used to refer to individual messages without having to know their message number: first, f identifies the first message of the appropriate type in the mailbox. (Ie: the first message (#1) if -idl is given, the first deleted message if -odl is given, or the first non-deleted message if -ondl or none of these control arguments is given). last, l identifies the last message of the appropriate type in the mailbox. next, n identifies the next message of the appropriate type in the mailbox. previous, p identifies the previous message of the appropriate type in the mailbox. current, c, . refers to the current message. The current message is initially the first message in the mailbox. Most requests set the current message to the last message processed by the request. For example, after executing the request: print 4 12 the current message will be message #12. first_seen, fs refers to the first undeleted "seen" message (see "seen" below). first_unseen, fu refers to the first undeleted "unseen" message (see "unseen" below). last_seen refers to the last undeleted "seen" message. last_unseen, lu refers to the last undeleted "unseen" message. next_seen, ns refers to the next undeleted "seen" message. next_unseen, nu refers to the next undeleted "unseen" message. previous_seen, ps refers to the previous undeleted "seen" message. previous_unseen, pu refers to the previous undeleted "unseen" message. Ranges of messages: Ranges of messages can be identified by using two message numbers or keywords separated by a colon (:). For example, 3:last identifies all messages of the appropriate type from message #3 through the last message of the appropriate type in the mailbox. The keyword "all" is accepted as shorthand for "first:last" and identifies all messages of the appropriate type in the mailbox. Other keywords: The following keywords specify collections of messages - all refers to all messages of the appropriate type in the mailbox. It is shorthand for "first:last". unseen refers to all messages of the appropriate type that have not yet been printed by the print request, by a user having "d" extended access to the mailbox. seen refers to all messages of the appropriate type that have previously been printed by the print request, by a user having "d" extended accesss to the mailbox. These, when listed, have an "S" preceding the sender name. new refers to all messages of the appropriate type after the last "seen" message, that is, after the latest one that was printed previously by the print request, by a user having "d" extended access to the mailbox. Arithmetic: Message numbers can be added and subtracted using "+" and "-". For example, if the current message is #20, current-5:current+10 identifies all messages of the appropriate type from message #15 through #30. As this example demonstrates, arithmetic operations are performed after any message keywords are converted to absolute numbers. In other words, "current+2" does not mean the second message of the appropriate type after the current message. Regular expressions: Qedx regular expressions can be used to select all messages of the appropriate type in the mailbox which contain a given string. The regular expression must be enclosed in slashes (/); for an explanation of the syntax of regular expressions, see the Qedx Text Editor's User Guide, order number CG40. If the regular expression contains spaces, horizontal tabs, quotes ("), parentheses, or brackets, the entire expression must be enclosed in quotes to avoid misinterpretation by the request line processor; any quotes within the regular expression must be doubled. For example, "/said, ""I think/" matches any message which contains the string said, "I think A regular expression can be preceded by any of the keywords: first, last, next, previous, all to select the first, last, etc. message containing that string. Additionally, two or more regular expressions can be combined by connectors for logical and (&) and logical or (|). For example, last/artificial/&/intelligence/ specifies the last message of the appropriate type containing both of the strings "artificial" and "intelligence". Examples: In the following examples, assume that -only_non_deleted is specified and that the current message is #15, the first non-deleted message after the current message is #17, the last non-deleted message before the current message is #10, the first non-deleted message is #3, and the last non-deleted message is #23. 1 would select message #1. However, as -ondl is specified and the first non-deleted message is message #3, this specifier would generate an error. 1:3 selects all non-deleted messages from message #1 to #3 inclusive (ie: #3). /foo/ selects all non-deleted messages containing the string "foo". last-3 selects message #20. l-3:l selects all non-deleted messages in the range from #20 to #23 (the last non-deleted message). next+4 selects message #21. p-2 selects message #8. c:c+4 selects all non-deleted messages in the range from #15 (the current message) to #19. /frogs/|/propellent/ selects all non-deleted messages containing either of the strings "frogs" or "propellent". "l/ it /" selects the last non-deleted message containing the string " it ". This specifier is enclosed in quotes because it contains spaces which have special significance to the request processor. ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved