~ubuntu-branches/ubuntu/raring/avr-libc/raring-proposed

« back to all changes in this revision

Viewing changes to tests/simulate/stdlib/iscntrl-1.c

  • Committer: Bazaar Package Importer
  • Author(s): Hakan Ardo
  • Date: 2008-08-10 09:59:16 UTC
  • mfrom: (1.1.7 upstream) (4.1.1 lenny)
  • Revision ID: james.westby@ubuntu.com-20080810095916-wwyigh3vt0e9s7ud
Tags: 1:1.6.2.cvs20080610-2
Added build-depends on texlive-extra-utils (closes: #493454)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Test of iscntrl() function.
 
2
   $Id: iscntrl-1.c,v 1.1.2.1 2008/03/20 21:42:37 joerg_wunsch Exp $
 
3
 */
 
4
#include <ctype.h>
 
5
#include <stdlib.h>
 
6
#include <string.h>
 
7
#include <stdio.h>
 
8
 
 
9
#ifndef __AVR__
 
10
# define PRINTFLN(fmt, ...)     \
 
11
    printf ("\nLine %d: " fmt "\n", __LINE__, ##__VA_ARGS__)
 
12
# define EXIT(code)     exit ((code) < 255 ? (code) : 100 + (code) % 100)
 
13
#else
 
14
# if defined(__AVR_ATmega128__)
 
15
  /* ATmega128 has enough RAM for sprintf(), print to 0x2000 in XRAM. */
 
16
#  define PRINTFLN(fmt, ...)    \
 
17
    sprintf ((char *)0x2000, "\nLine %d: " fmt "\n", __LINE__, ##__VA_ARGS__)
 
18
# else
 
19
   /* small AVR */
 
20
#  define PRINTFLN(args...)
 
21
# endif
 
22
# define EXIT   exit
 
23
#endif
 
24
 
 
25
int main ()
 
26
{
 
27
    int i;
 
28
    
 
29
    for (i = -1; i < 256; i++) {
 
30
        if ((i >= 0 && i < ' ') || i == 0x7f) {
 
31
            if (!iscntrl (i)) {
 
32
                PRINTFLN ("iscntrl(%#x) --> false", i);
 
33
                EXIT (__LINE__);
 
34
            }
 
35
        } else {
 
36
            if (iscntrl (i)) {
 
37
                PRINTFLN ("iscntrl(%#x) --> true", i);
 
38
                EXIT (__LINE__);
 
39
            }
 
40
        }
 
41
    }
 
42
    
 
43
 
 
44
/* Skip the host, as according to C standart it is not safety to use an
 
45
   argument beyound -1..255 value.  But Avr-libc's ctype functions permit
 
46
   this.        */
 
47
#ifdef  __AVR__
 
48
    {
 
49
        unsigned int u;
 
50
        for (u = 0xffff; u > 0xff; u--)
 
51
            if (iscntrl (u))
 
52
                EXIT (__LINE__);
 
53
    }
 
54
#endif
 
55
 
 
56
    return 0;
 
57
}