NO_MAGIC,
                ADD_LF_BEFORE_NON_EMPTY,
                DEL_LF_BEFORE_EMPTY,
+               ADD_SP_BEFORE_NON_EMPTY
        } magic = NO_MAGIC;
 
        switch (placeholder[0]) {
        case '+':
                magic = ADD_LF_BEFORE_NON_EMPTY;
                break;
+       case ' ':
+               magic = ADD_SP_BEFORE_NON_EMPTY;
+               break;
        default:
                break;
        }
        if ((orig_len == sb->len) && magic == DEL_LF_BEFORE_EMPTY) {
                while (sb->len && sb->buf[sb->len - 1] == '\n')
                        strbuf_setlen(sb, sb->len - 1);
-       } else if ((orig_len != sb->len) && magic == ADD_LF_BEFORE_NON_EMPTY) {
-               strbuf_insert(sb, orig_len, "\n", 1);
+       } else if (orig_len != sb->len) {
+               if (magic == ADD_LF_BEFORE_NON_EMPTY)
+                       strbuf_insert(sb, orig_len, "\n", 1);
+               else if (magic == ADD_SP_BEFORE_NON_EMPTY)
+                       strbuf_insert(sb, orig_len, " ", 1);
        }
        return consumed + 1;
 }
 {
        struct userformat_want *w = context;
 
-       if (*placeholder == '+' || *placeholder == '-')
+       if (*placeholder == '+' || *placeholder == '-' || *placeholder == ' ')
                placeholder++;
 
        switch (*placeholder) {