title: backward compatibility for (interactive "^") in Emacs 22
body: <p>In Emacs 23 and 24, the following works fine:</p>
  
  <pre><code>(defun foo (&amp;optional arg)
    (interactive "^p")
    (message "arg is %i" arg))
  </code></pre>
  
  <p>In Emacs 22, I get the following error:</p>
  
  <blockquote>
    <p><code>Invalid control letter `^' (136) in interactive calling string</code></p>
  </blockquote>
  
  <p>I tried this:</p>
  
  <pre><code>(defun foo (&amp;optional arg)
    (interactive (concat (if (&gt; emacs-major-version 22) "^" "") "p"))
    (message "arg is %i" arg))
  </code></pre>
  
  <p>but I get:</p>
  
  <blockquote>
    <p><code>Wrong type argument: listp, "^p"</code></p>
  </blockquote>
  
  <p>What is the best way to use <code>^</code> in Emacs 23 or 24 but not in Emacs 22?</p>