This file is indexed.

/usr/share/doc/libirman/examples/test_io.c is in libirman-dev 0.5.2-1build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/* test_io.c - test/demo of LIBIRMAN's low level functions      */
/* Copyright (C) 1998 Tom Wheeley, see file COPYING for details */

#ifdef HAVE_CONFIG_H
# include <config.h>
#endif

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <termios.h>
#include <unistd.h>

#include "irman.h"

int main(int argc, char **argv)
{
  int datum;
  int i;
  int fd;

  if (argc < 2) {
    fprintf(stderr, "usage: test_io device\n");
    fprintf(stderr, "       where device is the serial port at which the infra red receiver resides\n");
    fprintf(stderr, "       eg /dev/ttyS1 for COM2 on a PC running Linux\n");
    exit(0);
  }

  errno = 0;  
  if ((fd = ir_open_port(argv[1])) < 0) {
    fprintf(stderr, "unable to open port `%s' (%s)\n", argv[1], ir_strerror(errno));
    return 1;
  }

  /* read garbage */
  while ((datum = ir_read_char(IR_GARBAGE_TIMEOUT)) >= 0)
    ;
   
  errno = 0;
  ir_write_char('I'); putchar('I');
  tcdrain(fd);
  ir_usleep(IR_HANDSHAKE_GAP);
  ir_write_char('R'); putchar('R');
  putchar('\n');
  if (errno) {
    fprintf(stderr, "error writing handshake (%s)\n", ir_strerror(errno));
  }
  
  errno = 0;
  while ((datum = ir_read_char(IR_HANDSHAKE_TIMEOUT)) != 'O') {
    if (datum < 0) {
      fprintf(stderr, "error reading handshake (%s)\n", ir_strerror(errno));
      exit(1);
    } else {
      putchar(datum);
      putchar('!');
      fflush(stdout);
    }
  }
  putchar('O'); fflush(stdout);
  
  errno = 0;
  datum = ir_read_char(IR_HANDSHAKE_TIMEOUT);
  if (datum < 0) {
    fprintf(stderr, "error reading handshake (%s)\n", ir_strerror(errno));
    exit(1);
  } else {
    putchar(datum);
    if (datum != 'K') putchar('!');
  }
  putchar('\n');

  for (;;) {
    for (i=0; i<IR_CODE_LEN; i++) {
      datum = ir_read_char(IR_BLOCKING);
      if (datum < 0) {
        fprintf(stderr, "error reading data: `%s'\n", ir_strerror(errno));
        errno = 0;
      } else {
        printf("[%02x]", datum);
      }
    }
    putchar('\n');
  }

  ir_close_port();
  return 0;
}

/* end of test_io.c */