test code for our MBED board

Dependencies:   mbed lwip

Committer:
lolpcc
Date:
Wed May 04 08:30:52 2011 +0000
Revision:
1:6877bb99aa17

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lolpcc 1:6877bb99aa17 1 #include "mbed.h"
lolpcc 1:6877bb99aa17 2
lolpcc 1:6877bb99aa17 3 /*
lolpcc 1:6877bb99aa17 4 int breakup(char *, char *[], char);
lolpcc 1:6877bb99aa17 5 void breakup_sub(char *, char *,char,char);
lolpcc 1:6877bb99aa17 6 */
lolpcc 1:6877bb99aa17 7
lolpcc 1:6877bb99aa17 8 void breakup_sub(char *line,char *entery_point,char c,char d)
lolpcc 1:6877bb99aa17 9 {
lolpcc 1:6877bb99aa17 10 char *point,*pt2;
lolpcc 1:6877bb99aa17 11
lolpcc 1:6877bb99aa17 12 point = entery_point;
lolpcc 1:6877bb99aa17 13
lolpcc 1:6877bb99aa17 14 point++;
lolpcc 1:6877bb99aa17 15 pt2 = point;
lolpcc 1:6877bb99aa17 16 point --;
lolpcc 1:6877bb99aa17 17 while (*pt2!='\0') {
lolpcc 1:6877bb99aa17 18 *point = *pt2;
lolpcc 1:6877bb99aa17 19 point ++;
lolpcc 1:6877bb99aa17 20 pt2 ++;
lolpcc 1:6877bb99aa17 21 }
lolpcc 1:6877bb99aa17 22 *point = *pt2;
lolpcc 1:6877bb99aa17 23 }
lolpcc 1:6877bb99aa17 24
lolpcc 1:6877bb99aa17 25 int breakup(char *string,char *p[],char c)
lolpcc 1:6877bb99aa17 26 {
lolpcc 1:6877bb99aa17 27 char *pt,*pt1;
lolpcc 1:6877bb99aa17 28 char cc,ccc;
lolpcc 1:6877bb99aa17 29 int cnt = 0;
lolpcc 1:6877bb99aa17 30 int number = 0;
lolpcc 1:6877bb99aa17 31 int flag = 0;
lolpcc 1:6877bb99aa17 32 int last = 0;
lolpcc 1:6877bb99aa17 33 int just = 0;
lolpcc 1:6877bb99aa17 34 int length = strlen(string);
lolpcc 1:6877bb99aa17 35
lolpcc 1:6877bb99aa17 36 pt = string;
lolpcc 1:6877bb99aa17 37 p[number] = pt;
lolpcc 1:6877bb99aa17 38 number++;
lolpcc 1:6877bb99aa17 39
lolpcc 1:6877bb99aa17 40 while (cnt != length + 1) {
lolpcc 1:6877bb99aa17 41 cc = *pt;
lolpcc 1:6877bb99aa17 42 if (cc == '\0')
lolpcc 1:6877bb99aa17 43 return(number);
lolpcc 1:6877bb99aa17 44 /* this section of code will need sorting, so we don't have to use a space
lolpcc 1:6877bb99aa17 45 char, we should move the ramainder of the buffer down one charactor
lolpcc 1:6877bb99aa17 46 */
lolpcc 1:6877bb99aa17 47 if (cc=='\\') {
lolpcc 1:6877bb99aa17 48 pt1 = pt; /* save the current pointer */
lolpcc 1:6877bb99aa17 49 pt++;
lolpcc 1:6877bb99aa17 50 ccc = *pt;
lolpcc 1:6877bb99aa17 51 if (ccc=='"') {
lolpcc 1:6877bb99aa17 52 pt--;
lolpcc 1:6877bb99aa17 53 breakup_sub(string,pt,cc,ccc);
lolpcc 1:6877bb99aa17 54 pt = pt1;
lolpcc 1:6877bb99aa17 55 } else {
lolpcc 1:6877bb99aa17 56 pt--;
lolpcc 1:6877bb99aa17 57 pt = pt1; /* restore the current pointer */
lolpcc 1:6877bb99aa17 58 }
lolpcc 1:6877bb99aa17 59 }
lolpcc 1:6877bb99aa17 60 if (flag == 0) {
lolpcc 1:6877bb99aa17 61 switch (cc) {
lolpcc 1:6877bb99aa17 62 case '"' :
lolpcc 1:6877bb99aa17 63 flag = 1;
lolpcc 1:6877bb99aa17 64 case '\n' :
lolpcc 1:6877bb99aa17 65 case '\t' :
lolpcc 1:6877bb99aa17 66 case ' ' :
lolpcc 1:6877bb99aa17 67 if (just==1) {
lolpcc 1:6877bb99aa17 68 /* move the current pointer along */
lolpcc 1:6877bb99aa17 69 pt = pt + 1;
lolpcc 1:6877bb99aa17 70 p[number] = pt;
lolpcc 1:6877bb99aa17 71 pt = pt - 1;
lolpcc 1:6877bb99aa17 72 } else {
lolpcc 1:6877bb99aa17 73 /* add the current point to the array */
lolpcc 1:6877bb99aa17 74 just = 1;
lolpcc 1:6877bb99aa17 75 *pt = '\0';
lolpcc 1:6877bb99aa17 76 pt++;
lolpcc 1:6877bb99aa17 77 p[number] = pt;
lolpcc 1:6877bb99aa17 78 pt--;
lolpcc 1:6877bb99aa17 79 }
lolpcc 1:6877bb99aa17 80 if (flag == 1) {
lolpcc 1:6877bb99aa17 81 number ++;
lolpcc 1:6877bb99aa17 82 just = 0;
lolpcc 1:6877bb99aa17 83 }
lolpcc 1:6877bb99aa17 84 break;
lolpcc 1:6877bb99aa17 85 default :
lolpcc 1:6877bb99aa17 86 if (just == 1) {
lolpcc 1:6877bb99aa17 87 just = 0;
lolpcc 1:6877bb99aa17 88 number ++;
lolpcc 1:6877bb99aa17 89 }
lolpcc 1:6877bb99aa17 90 break;
lolpcc 1:6877bb99aa17 91 }
lolpcc 1:6877bb99aa17 92 if (cc == c) { /* test for the user defined char */
lolpcc 1:6877bb99aa17 93 just = 1;
lolpcc 1:6877bb99aa17 94 *pt = '\0';
lolpcc 1:6877bb99aa17 95 pt++;
lolpcc 1:6877bb99aa17 96 p[number] = pt;
lolpcc 1:6877bb99aa17 97 pt--;
lolpcc 1:6877bb99aa17 98 }
lolpcc 1:6877bb99aa17 99 } else {
lolpcc 1:6877bb99aa17 100 if ((last == 0) & (cc =='"')) { /* close of quoate */
lolpcc 1:6877bb99aa17 101 flag = 0;
lolpcc 1:6877bb99aa17 102 just = 1;
lolpcc 1:6877bb99aa17 103 *pt = '\0';
lolpcc 1:6877bb99aa17 104 pt++;
lolpcc 1:6877bb99aa17 105 p[number] = pt;
lolpcc 1:6877bb99aa17 106 pt--;
lolpcc 1:6877bb99aa17 107 } else if ((flag == 1) & (last == 1) & (cc!='\\'))
lolpcc 1:6877bb99aa17 108 last = 0;
lolpcc 1:6877bb99aa17 109 }
lolpcc 1:6877bb99aa17 110 pt++;
lolpcc 1:6877bb99aa17 111 cnt++;
lolpcc 1:6877bb99aa17 112 }
lolpcc 1:6877bb99aa17 113 return(-1);
lolpcc 1:6877bb99aa17 114 }