typo
[asdevice.git] / pointertest.c
blobd8e51f5e47b72f2cb67d1e35e2ef766f1b3d20b0
1 #include <stdlib.h>
2 #include <stdio.h>
4 char s0[] = "\0";
5 char s1[] = "Line1 text\0";
6 char s2[] = "line2 text\0";
7 char s3[] = "line3 text\0";
8 char s4[] = "line4 text\0";
11 char* screen1[] = {s0};
12 #define screen1Len (sizeof(screen1)/sizeof(&screen1))
13 char* screen2[] = {s0,s1,s2,s3,s4};
14 #define screen2Len (sizeof(screen2)/sizeof(&screen2))
15 char* screen3[] = {s0,s1};
16 #define screen3Len (sizeof(screen3)/sizeof(&screen3))
18 char** screens[] = {screen1,screen2,screen3};
19 int screensLen[] = {screen1Len,screen2Len,screen3Len};
21 void drawScreen(char**,unsigned,int);
22 void next(char**,unsigned*,int);
23 void prev(char**,unsigned*,int);
24 float min(float a, float b){return (a < b ? a : b);}
26 int main(){
27 char key=0xff;
28 int i = 0;
29 unsigned* offset;
30 offset = malloc(sizeof(unsigned));
31 *offset = 0;
32 drawScreen(screens[1],0,screensLen[1]);
33 while(1){
34 key = getchar();
35 switch (key) {
36 case 'n' : {
37 next(screens[1],offset,screensLen[1]);
38 }; break;
39 case 'p' : {
40 prev(screens[1],offset,screensLen[1]);
41 }; break;
44 return 1;
47 void drawScreen(char** s,unsigned yo,int scrLen){
48 int i = 0;
49 system("clear");
50 for(i; i<(unsigned)min(scrLen, 2); i++){
51 printf("%d ",i);
52 printf(i==1?">":" ");
53 printf("%s\n",s[i+yo]);
57 void next(char** s,unsigned* menuOffset,int scrLen){
58 *menuOffset = ((*menuOffset)+2==scrLen)?(*menuOffset):(((*menuOffset)+1));
59 drawScreen(s,*menuOffset,scrLen);
62 void prev(char** s, unsigned* menuOffset,int scrLen){
63 *menuOffset = (*menuOffset==0)?(*menuOffset):((*menuOffset)-1);
64 drawScreen(s,*menuOffset,scrLen);