title: c ternary operator without "true" clause?
body: <p>I was looking at the source for weston, the wayland reference implementation, and I saw this line that confused me (<a href="https://github.com/wayland-project/weston/blob/master/desktop-shell/shell.c" rel="nofollow noreferrer">https://github.com/wayland-project/weston/blob/master/desktop-shell/shell.c</a> line 230)</p>
  
  <pre><code>return snprintf(buf, len, "%s window%s%s%s%s%s",
      "top-level",
      t ? " '" : "", t ?: "", t ? "'" : "",
      c ? " of " : "", c ?: "");
  </code></pre>
  
  <p>What does <code>t ?: ""</code> mean? I've never seen an operator like this before, in C at least. It looks like it means "if t is not null then t else (elseclause)" but I didn't know C had that operator.</p>