title: emacs: How to use the mark-ring?
body: <p>When I do a <code>C-u C-SPC</code>, emacs takes me to "where I was before". Subsequent <code>C-u C-SPC</code> presses go back up previous places.
  That is damn great, and I use it a lot.</p>
  
  <p>But something always bugged me : The only mark missing from the mark-ring is <em>where-I-invoked-this-in-the-1st-place</em>! It's like leaving bread crumbs behind you, and then go "whoops, I <em>may</em> be lost, imma go back and check", then going back <strong>without leaving a bread crumb where you are right now!</strong></p>
  
  <p>I tried advising the function, but I can't for the life of me programmatically simulate a <code>C-SPC C-SPC</code>.</p>
  
  <ul>
  <li>how can I "see" (echo, message, trace, etc) what a key combination does, like "C-h k" but 
  for repeated key sequences, like <code>C-SPC C-SPC</code> ? Here is what the manual says of the latter (emphasis mine)</li>
  </ul>
  
  <blockquote>
    <p>C-SPC runs the command set-mark-command, which is an interactive
    compiled Lisp function in `simple.el'.</p>
    
    <p>It is bound to C-@, C-SPC.</p>
    
    <p>(set-mark-command ARG)</p>
    
    <p>Set the mark where point is, or jump to the mark. Setting the mark
    also alters the region, which is the text between point and mark; this
    is the closest equivalent in Emacs to what some editors call the
    "selection".</p>
    
    <p><strong>With no prefix argument, set the mark at point</strong>, and push the old mark
    position on local mark ring.  Also push the old mark on global mark
    ring, if the previous mark was set in another buffer.</p>
  </blockquote>
  
  <p>But when I try to use it (non-interactively) "With no prefix argument" in order to "set the mark at point" I get a debugger error "wrong-number-of-arguments"..? (I realize the difference between an argument and a prefix argument).</p>
  
  <p>I would be okay even with a philosophical, non-practical answer. I just want to understand what the idea is here.</p>