If I'm not wrong, in French the em-dashes, typeset with --- in LaTeX, are usually treated like the guillemots as far as non-breaking spaces go. An "opening" em-dash must be followed by a non-breaking space, while a "closing" em-dash must be preceded by a non-breaking space.
[french]{babel} doesn't apply this rule, so I ended up making my own macros:
\newcommand{\ocadr}{\mbox{---~}}
\newcommand{\fcadr}{\mbox{~---}}
Is there a better way to ensure these non-breaking spaces?
Edit:
Here is a minimal example to justify the use of \mbox:
\documentclass{minimal}
\begin{document}
\parbox{9cm}{\textsc{
Dieu se sert des epreuves pour nous montrer nos c\oe{}urs,
afin de pouvoir nous purifier et nous faire ensuite entrer
dans le pays de la benediction ---~physiquement et spirituellement.
}}
\end{document}
which produces:

Whereas with \mbox around the ---~, I get:

Nota:
I kept the \textsc because it's a case that I know produces this effect with the given size of the \parbox.
