\HeaderA{message}{Diagnostic Messages}{message}
\aliasA{suppressMessages}{message}{suppressMessages}
\keyword{programming}{message}
\begin{Description}\relax
Generate a diagnostic message from its arguments.
\end{Description}
\begin{Usage}
\begin{verbatim}
message(..., domain = NULL)
suppressMessages(expr)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{...}] character vectors (which are pasted together with no
separator), a condition object, or \code{NULL}.
\item[\code{domain}] see \code{\LinkA{gettext}{gettext}}.
If \code{NA}, messages will not be translated.
\item[\code{expr}] expression to evaluate.
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
\code{message} is used for generating \dQuote{simple} diagnostic
messages which are neither warnings nor errors, but nevertheless
represented as conditions.

While the message is being processed, a \code{muffleMessage} restart
is available.

\code{suppressMessages} evaluates its expression in a context that
ignores all \dQuote{simple} diagnostic messages.
\end{Details}
\begin{SeeAlso}\relax
\code{\LinkA{warning}{warning}} and \code{\LinkA{stop}{stop}} for generating warnings
and errors; \code{\LinkA{conditions}{conditions}} for condition handling and
recovery.

\code{\LinkA{gettext}{gettext}} for the mechanisms for the automated translation
of text.
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
message("ABC", "DEF")
suppressMessages(message("ABC"))
\end{ExampleCode}
\end{Examples}

