summaryrefslogtreecommitdiffstats
path: root/lua/core/snippets/c.lua
blob: c45f55600846f7be3f64b96cdff1c4b754877df5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
ls.add_snippets('c', {
  s('trip', {
    -- cond ? then : else statment
    i(1, 'cond'), t(' ? '), i(2, 'then'), t(' : '), i(3, 'else')
  }),
  s('stdlibs', {
    -- cond ? then : else statment
    t('#include <stdio.h>'),
    t({'', '#include <stdlib.h>'})
  }),
  s('die', {
    t({
    'void die(const char *fmt, ...) {', '',
      'va_list ap;',
      '',
      'va_start(ap, fmt);',
      'vfprintf(stderr, fmt, ap);',
      'va_end(ap);',
      '',
      [[if (fmt[0] && fmt[strlen(fmt)-1] == ':') {]],
      [[  fputc(' ', stderr);]],
      '  perror(NULL);',
      '} else',
      [[  fputc('\n', stderr);]],
      '  exit(1);',
      '}',
    })
  })
})