~ubuntu-branches/ubuntu/saucy/clamav/saucy

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/utils/count/count.c

  • Committer: Bazaar Package Importer
  • Author(s): Leonel Nunez
  • Date: 2008-02-11 22:52:13 UTC
  • mfrom: (1.1.6 upstream)
  • mto: This revision was merged to the branch mainline in revision 38.
  • Revision ID: james.westby@ubuntu.com-20080211225213-p2uwj4czso1w2f8h
Tags: upstream-0.92~dfsg
ImportĀ upstreamĀ versionĀ 0.92~dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*===- count.c - The 'count' testing tool ---------------------------------===*\
2
 
 *
3
 
 *                     The LLVM Compiler Infrastructure
4
 
 *
5
 
 * This file is distributed under the University of Illinois Open Source
6
 
 * License. See LICENSE.TXT for details.
7
 
 *
8
 
\*===----------------------------------------------------------------------===*/
9
 
 
10
 
#include <stdlib.h>
11
 
#include <stdio.h>
12
 
 
13
 
int main(int argc, char **argv) {
14
 
  unsigned Count, NumLines, NumRead;
15
 
  char Buffer[4096], *End;
16
 
 
17
 
  if (argc != 2) {
18
 
    fprintf(stderr, "usage: %s <expected line count>\n", argv[0]);
19
 
    return 2;
20
 
  }
21
 
 
22
 
  Count = strtol(argv[1], &End, 10);
23
 
  if (*End != '\0' && End != argv[1]) {
24
 
    fprintf(stderr, "%s: invalid count argument '%s'\n", argv[0], argv[1]);
25
 
    return 2;
26
 
  }
27
 
 
28
 
  NumLines = 0;
29
 
  do {
30
 
    unsigned i;
31
 
 
32
 
    NumRead = fread(Buffer, 1, sizeof(Buffer), stdin);
33
 
 
34
 
    for (i = 0; i != NumRead; ++i)
35
 
      if (Buffer[i] == '\n')
36
 
        ++NumLines;
37
 
  } while (NumRead == sizeof(Buffer));
38
 
    
39
 
  if (!feof(stdin)) {
40
 
    fprintf(stderr, "%s: error reading stdin\n", argv[0]);
41
 
    return 3;
42
 
  }
43
 
 
44
 
  if (Count != NumLines) {
45
 
    fprintf(stderr, "Expected %d lines, got %d.\n", Count, NumLines);
46
 
    return 1;
47
 
  }
48
 
 
49
 
  return 0;
50
 
}