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

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Hakan Ardo
  • Date: 2009-10-31 11:52:10 UTC
  • mfrom: (1.1.8 upstream) (4.1.2 squeeze)
  • Revision ID: james.westby@ubuntu.com-20091031115210-x0mlijnegkce86fk
Tags: 1:1.6.7-1
* New upstream relese (closes: #544030)
* Added lintian overrides (closes: #553265)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Test of isalnum() function.
2
 
   $Id: isalnum-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 <= '9')
31
 
            || (i >= 'A' && i <= 'Z')
32
 
            || (i >= 'a' && i <= 'z'))
33
 
        {
34
 
            if (!isalnum (i)) {
35
 
                PRINTFLN ("isalnum(%#x) --> false", i);
36
 
                EXIT (__LINE__);
37
 
            }
38
 
        } else {
39
 
            if (isalnum (i)) {
40
 
                PRINTFLN ("isalnum(%#x) --> true", i);
41
 
                EXIT (__LINE__);
42
 
            }
43
 
        }
44
 
    }
45
 
    
46
 
 
47
 
/* Skip the host, as according to C standart it is not safety to use an
48
 
   argument beyound -1..255 value.  But Avr-libc's ctype functions permit
49
 
   this.        */
50
 
#ifdef  __AVR__
51
 
    {
52
 
        unsigned int u;
53
 
        for (u = 0xffff; u > 0xff; u--)
54
 
            if (isalnum (u))
55
 
                EXIT (__LINE__);
56
 
    }
57
 
#endif
58
 
 
59
 
    return 0;
60
 
}