~ubuntu-branches/debian/sid/neovim/sid

« back to all changes in this revision

Viewing changes to test/functional/fixtures/shell-test.c

  • Committer: Package Import Robot
  • Author(s): James McCoy
  • Date: 2016-04-18 21:42:19 UTC
  • mfrom: (1.1.2)
  • Revision ID: package-import@ubuntu.com-20160418214219-1e6d4o1fwqarzk46
Tags: 0.1.3-1
* New upstream release.  (Closes: #820562)
* debian/control:
  + Remove unnecessary luarocks Build-Depends
  + Add libkvm-dev Build-Depends for kfreebsd-*
  + Add python(3)-neovim to Recommends.  (Closes: #812737)
  + Declare compiance with policy 3.9.8, no changes needed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// A simple implementation of a shell for testing
2
 
// `termopen([&sh, &shcf, '{cmd'}])` and `termopen([&sh])`.
3
 
//
4
 
// If launched with no arguments, prints "ready $ ", otherwise prints
5
 
// "ready $ {cmd}\n".
6
 
 
7
1
#include <stdio.h>
8
2
#include <string.h>
 
3
#include <stdint.h>
 
4
 
 
5
static void help(void)
 
6
{
 
7
  puts("A simple implementation of a shell for testing termopen().");
 
8
  puts("");
 
9
  puts("Usage:");
 
10
  puts("  shell-test --help");
 
11
  puts("    Prints this help to stdout.");
 
12
  puts("  shell-test");
 
13
  puts("  shell-test EXE");
 
14
  puts("    Prints \"ready $ \" to stderr.");
 
15
  puts("  shell-test EXE \"prog args...\"");
 
16
  puts("    Prints \"ready $ prog args...\\n\" to stderr.");
 
17
  puts("  shell-test REP {byte} \"line line line\"");
 
18
  puts("    Prints \"{lnr}: line line line\\n\" to stdout {byte} times.");
 
19
  puts("    I.e. for `shell-test REP ab \"test\"'");
 
20
  puts("      0: test");
 
21
  puts("      ...");
 
22
  puts("      96: test");
 
23
  puts("    will be printed because byte `a' is equal to 97.");
 
24
}
9
25
 
10
26
int main(int argc, char **argv)
11
27
{
12
 
  fprintf(stderr, "ready $ ");
 
28
  if (argc == 2 && strcmp(argv[1], "--help") == 0) {
 
29
    help();
 
30
  }
13
31
 
14
 
  if (argc == 3) {
15
 
    // argv should be {"terminal-test", "EXE", "prog args..."}
16
 
    if (strcmp(argv[1], "EXE") != 0) {
17
 
      fprintf(stderr, "first argument must be 'EXE'\n");
18
 
      return 2;
 
32
  if (argc >= 2) {
 
33
    if (strcmp(argv[1], "EXE") == 0) {
 
34
      fprintf(stderr, "ready $ ");
 
35
      if (argc >= 3) {
 
36
        fprintf(stderr, "%s\n", argv[2]);
 
37
      }
 
38
    } else if (strcmp(argv[1], "REP") == 0) {
 
39
      if (argc < 4) {
 
40
        fprintf(stderr, "Not enough REP arguments\n");
 
41
        return 4;
 
42
      }
 
43
      uint8_t number = (uint8_t) *argv[2];
 
44
      for (uint8_t i = 0; i < number; i++) {
 
45
        printf("%d: %s\n", (int) i, argv[3]);
 
46
      }
 
47
    } else {
 
48
      fprintf(stderr, "Unknown first argument\n");
 
49
      return 3;
19
50
    }
20
 
 
21
 
    fprintf(stderr, "%s\n", argv[2]);
 
51
    return 0;
 
52
  } else if (argc == 1) {
 
53
    fprintf(stderr, "ready $ ");
 
54
    return 0;
 
55
  } else {
 
56
    fprintf(stderr, "Missing first argument\n");
 
57
    return 2;
22
58
  }
23
 
 
24
 
  return 0;
25
59
}