aboutsummaryrefslogtreecommitdiff
path: root/iemlib2/src/iem_pbank_temp.c
blob: 0a9e97035212d4ce9d01030efcfe83c310ab58a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
// 1.)  allow only readable ASCII (0x0a, 0x0d, 0x20...0x7e), else drop
    txvec_src = txbuf1;
    txvec_dst = txbuf2;
	txlen1 = txalloc;
    p = 0;
    for(l=0; l<txlen; l++)
    {
      if(((*txvec_src >= ' ') && (*txvec_src <= '~')) || (*txvec_src == 0x0a) || (*txvec_src == 0x0d))
      {
        *txvec_dst++ = *txvec_src++;// copy the same char
        p++;
      }
      else
        txvec_src++;// drop anything else
    }
    txlen = p - 1; // dst is 2
	
	// 2.) unify windows return
    txvec_src = txbuf2;
    txvec_dst = txbuf1;
    p = 0;
    for(l=0; l<txlen; l++)
    {
      if((*txvec_src == 0x0d)&&(txvec_src[1] == 0x0a))  // windows return
      {
        *txvec_dst++ = IEM_PBANK_UNIFIED_EOL;
        txvec_src += 2;
        l++;
        p++;
      }
      else
      {
        *txvec_dst++ = *txvec_src++;
        p++;
      }
    }
    txlen = p; // dst is 1

	
	
    IEM_PBANK_UNIFIED_EOL  IEM_PBANK_UNIFIED_SEP
     
    
    
    // unify return
    txvec_dst = txbuf2;
    for(l=0; l<txlen; l++)
    {
      if(*txvec_dst == 0x0d)// replace '0x0d' by '0x0a'
        *txvec_dst = 0x0a;
      txvec_dst++;
    }
    
    // unify EndOfLine
    txvec_src = txbuf2;
    txvec_dst = txbuf1;
    p = 0;
    for(l=0; l<txlen; l++)
    {
      if(!strncmp(txvec_src, eol+eol_offset, eol_length)) /* replace eol by 0x0a */
      {
        txvec_src += eol_length;
        l += eol_length - 1;
        *txvec_dst++ = 0x0a;
        p++;
      }
      else
      {
        *txvec_dst++ = *txvec_src++;// copy the same char
        p++;
      }
    }
    txlen = p;
    
#if(IEMLIB2_DEBUG)
    post("after UNI EOL RET");
    txvec_src = txbuf1;
    for(l=0; l<txlen; l++)
    {
      post("%d:%x=%c",l,*txvec_src,*txvec_src);
      txvec_src++;
    }
#endif
    
    // unify separator
    txvec_src = txbuf1;
    txvec_dst = txbuf2;
    for(l=0; l<txlen; l++)
    {
      if(*txvec_src == sep)// replace 'sep' by ';'
      {
        txvec_src++;
        *txvec_dst++ = ';';
      }
      else if((*txvec_src == ',') && (mode[IEM_PBANK_END_OF_LINE] != 'c')) // replace ',' by '.'
      {
        txvec_src++;
        *txvec_dst++ = '.';
      }
      else
        *txvec_dst++ = *txvec_src++;// drop anything else
    }