File: ofx2qif_8c-source.html

package info (click to toggle)
libofx 1%3A0.9.0-3
  • links: PTS
  • area: main
  • in suites: lenny, squeeze
  • size: 9,864 kB
  • ctags: 31,331
  • sloc: sh: 8,861; cpp: 5,714; ansic: 2,524; makefile: 204; xml: 61
file content (226 lines) | stat: -rw-r--r-- 29,657 bytes parent folder | download
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>LibOFX: ofx2qif.c Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
  </ul>
</div>
<h1>ofx2qif.c</h1><a href="ofx2qif_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************************************</span>
<a name="l00002"></a>00002 <span class="comment">                                   ofx2qif.c</span>
<a name="l00003"></a>00003 <span class="comment">                             -------------------</span>
<a name="l00004"></a>00004 <span class="comment">    copyright            : (C) 2002 by Benoit Grgoire</span>
<a name="l00005"></a>00005 <span class="comment">    email                : bock@step.polymtl.ca</span>
<a name="l00006"></a>00006 <span class="comment">***************************************************************************/</span>
<a name="l00032"></a>00032 <span class="comment">/***************************************************************************</span>
<a name="l00033"></a>00033 <span class="comment"> *                                                                         *</span>
<a name="l00034"></a>00034 <span class="comment"> *   This program is free software; you can redistribute it and/or modify  *</span>
<a name="l00035"></a>00035 <span class="comment"> *   it under the terms of the GNU General Public License as published by  *</span>
<a name="l00036"></a>00036 <span class="comment"> *   the Free Software Foundation; either version 2 of the License, or     *</span>
<a name="l00037"></a>00037 <span class="comment"> *   (at your option) any later version.                                   *</span>
<a name="l00038"></a>00038 <span class="comment"> *                                                                         *</span>
<a name="l00039"></a>00039 <span class="comment"> ***************************************************************************/</span>
<a name="l00040"></a>00040 
<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
<a name="l00042"></a>00042 <span class="preprocessor">#include &lt;string.h&gt;</span>
<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;time.h&gt;</span>
<a name="l00044"></a>00044 <span class="preprocessor">#include "<a class="code" href="libofx-0_89_80_2inc_2libofx_8h.html" title="Main header file containing the LibOfx API.">libofx.h</a>"</span>
<a name="l00045"></a>00045 
<a name="l00046"></a><a class="code" href="ofx2qif_8c.html#746e398756fe4d68b06e3bbd1418402a">00046</a> <span class="preprocessor">#define QIF_FILE_MAX_SIZE 256000</span>
<a name="l00047"></a>00047 <span class="preprocessor"></span>
<a name="l00048"></a><a class="code" href="ofx2qif_8c.html#7850aaa7c07cabcacb6849e82f773463">00048</a> <span class="keywordtype">int</span> <a class="code" href="ofx2qif_8c.html#7850aaa7c07cabcacb6849e82f773463">ofx_proc_transaction_cb</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structOfxTransactionData.html" title="An abstraction of a transaction in an account.">OfxTransactionData</a> data, <span class="keywordtype">void</span> * transaction_data)
<a name="l00049"></a>00049 {
<a name="l00050"></a>00050   <span class="keywordtype">char</span> dest_string[255];
<a name="l00051"></a>00051   <span class="keywordtype">char</span> trans_buff[4096];
<a name="l00052"></a>00052   <span class="keyword">struct </span>tm temp_tm;
<a name="l00053"></a>00053   <span class="keywordtype">char</span> trans_list_buff[<a class="code" href="ofx2qif_8c.html#746e398756fe4d68b06e3bbd1418402a">QIF_FILE_MAX_SIZE</a>];
<a name="l00054"></a>00054 
<a name="l00055"></a>00055   trans_list_buff[0]=<span class="charliteral">'\0'</span>;
<a name="l00056"></a>00056   
<a name="l00057"></a>00057   <span class="keywordflow">if</span>(data.<a class="code" href="structOfxTransactionData.html#e6cf8576653a9c3c06c3500aa0848f35">date_posted_valid</a>==<span class="keyword">true</span>){
<a name="l00058"></a>00058     temp_tm = *localtime(&amp;(data.<a class="code" href="structOfxTransactionData.html#64ea65411d601e81ed3ea6d60b5067b9">date_posted</a>));
<a name="l00059"></a>00059     sprintf(trans_buff, <span class="stringliteral">"D%d%s%d%s%d%s"</span>, temp_tm.tm_mday, <span class="stringliteral">"/"</span>, temp_tm.tm_mon+1, <span class="stringliteral">"/"</span>, temp_tm.tm_year+1900, <span class="stringliteral">"\n"</span>);
<a name="l00060"></a>00060     strncat(trans_list_buff, trans_buff, <span class="keyword">sizeof</span>(trans_list_buff)-1 - strlen(trans_list_buff));
<a name="l00061"></a>00061   }
<a name="l00062"></a>00062   <span class="keywordflow">if</span>(data.<a class="code" href="structOfxTransactionData.html#4c4995cf2465345b233a23a97b29c88e">amount_valid</a>==<span class="keyword">true</span>){
<a name="l00063"></a>00063     sprintf(trans_buff, <span class="stringliteral">"T%.2f%s"</span>,data.<a class="code" href="structOfxTransactionData.html#8d89643cfcc66560d20d6ae857641671">amount</a>,<span class="stringliteral">"\n"</span>);
<a name="l00064"></a>00064     strncat(trans_list_buff, trans_buff, <span class="keyword">sizeof</span>(trans_list_buff)-1 - strlen(trans_list_buff));
<a name="l00065"></a>00065   }
<a name="l00066"></a>00066   <span class="keywordflow">if</span>(data.<a class="code" href="structOfxTransactionData.html#1dee3cffcf91a81925a812ddb8550124">check_number_valid</a>==<span class="keyword">true</span>){
<a name="l00067"></a>00067     sprintf(trans_buff, <span class="stringliteral">"N%s%s"</span>,data.<a class="code" href="structOfxTransactionData.html#0a17438e40d33299517770722c9b566c">check_number</a>,<span class="stringliteral">"\n"</span>);
<a name="l00068"></a>00068     strncat(trans_list_buff, trans_buff, <span class="keyword">sizeof</span>(trans_list_buff)-1 - strlen(trans_list_buff));
<a name="l00069"></a>00069   }
<a name="l00070"></a>00070   <span class="keywordflow">else</span> <span class="keywordflow">if</span>(data.<a class="code" href="structOfxTransactionData.html#bd45775dcf142730232f57b9ee3f6b8d">reference_number_valid</a>==<span class="keyword">true</span>){
<a name="l00071"></a>00071     sprintf(trans_buff, <span class="stringliteral">"N%s%s"</span>,data.<a class="code" href="structOfxTransactionData.html#4228cc0543cb479b497f03de20611650">reference_number</a>,<span class="stringliteral">"\n"</span>);
<a name="l00072"></a>00072       strncat(trans_list_buff, trans_buff, <span class="keyword">sizeof</span>(trans_list_buff)-1 - strlen(trans_list_buff));
<a name="l00073"></a>00073 }
<a name="l00074"></a>00074 <span class="keywordflow">if</span>(data.<a class="code" href="structOfxTransactionData.html#3e5ce4bde9c4c2d175a5ad68fc287cbe">name_valid</a>==<span class="keyword">true</span>){
<a name="l00075"></a>00075     sprintf(trans_buff, <span class="stringliteral">"P%s%s"</span>,data.<a class="code" href="structOfxTransactionData.html#d50d7fc4d119214fceaed44a910789c3">name</a>,<span class="stringliteral">"\n"</span>);
<a name="l00076"></a>00076         strncat(trans_list_buff, trans_buff, <span class="keyword">sizeof</span>(trans_list_buff)-1 - strlen(trans_list_buff));
<a name="l00077"></a>00077 }
<a name="l00078"></a>00078 <span class="keywordflow">if</span>(data.<a class="code" href="structOfxTransactionData.html#27e162fb30f34397d93445110cf7074f">memo_valid</a>==<span class="keyword">true</span>){
<a name="l00079"></a>00079     sprintf(trans_buff, <span class="stringliteral">"M%s%s"</span>,data.<a class="code" href="structOfxTransactionData.html#4ffcfadafa8986c818648760c2884d20">memo</a>,<span class="stringliteral">"\n"</span>);
<a name="l00080"></a>00080         strncat(trans_list_buff, trans_buff, <span class="keyword">sizeof</span>(trans_list_buff)-1 - strlen(trans_list_buff));
<a name="l00081"></a>00081 }
<a name="l00082"></a>00082 <span class="comment">/* Add PAYEE and ADRESS here once supported by the library */</span>
<a name="l00083"></a>00083 
<a name="l00084"></a>00084 
<a name="l00085"></a>00085 <span class="keywordflow">if</span>(data.<a class="code" href="structOfxTransactionData.html#73290dc395cf8342d136dbcd243ce695">transactiontype_valid</a>==<span class="keyword">true</span>){
<a name="l00086"></a>00086     <span class="keywordflow">switch</span>(data.<a class="code" href="structOfxTransactionData.html#fc7ee497429b2f400a16edf3f3a0d093">transactiontype</a>){
<a name="l00087"></a>00087         <span class="keywordflow">case</span> <a class="code" href="inc_2libofx_8h.html#a7a2e64697569804f14626bbb2649a5855a44ce2b4561d75e1387d14bf4346e3">OFX_CREDIT</a>: strncpy(dest_string, <span class="stringliteral">"Generic credit"</span>, <span class="keyword">sizeof</span>(dest_string));
<a name="l00088"></a>00088         <span class="keywordflow">break</span>;
<a name="l00089"></a>00089         <span class="keywordflow">case</span> <a class="code" href="inc_2libofx_8h.html#a7a2e64697569804f14626bbb2649a58b60c4a61836e4c9eddd43df98f58f25a">OFX_DEBIT</a>: strncpy(dest_string, <span class="stringliteral">"Generic debit"</span>, <span class="keyword">sizeof</span>(dest_string));
<a name="l00090"></a>00090         <span class="keywordflow">break</span>;
<a name="l00091"></a>00091         <span class="keywordflow">case</span> <a class="code" href="inc_2libofx_8h.html#a7a2e64697569804f14626bbb2649a586c561a0df9837463a7badde944a6c6ce">OFX_INT</a>: strncpy(dest_string, <span class="stringliteral">"Interest earned or paid (Note: Depends on signage of amount)"</span>, <span class="keyword">sizeof</span>(dest_string));
<a name="l00092"></a>00092         <span class="keywordflow">break</span>;
<a name="l00093"></a>00093         <span class="keywordflow">case</span> <a class="code" href="inc_2libofx_8h.html#a7a2e64697569804f14626bbb2649a58dbf02dcc7c9b4bb5de5e0126127ec482">OFX_DIV</a>: strncpy(dest_string, <span class="stringliteral">"Dividend"</span>, <span class="keyword">sizeof</span>(dest_string));
<a name="l00094"></a>00094         <span class="keywordflow">break</span>;
<a name="l00095"></a>00095         <span class="keywordflow">case</span> <a class="code" href="inc_2libofx_8h.html#a7a2e64697569804f14626bbb2649a58d0b1678dd27d1caa1e0464b471b49d5b">OFX_FEE</a>: strncpy(dest_string, <span class="stringliteral">"FI fee"</span>, <span class="keyword">sizeof</span>(dest_string));
<a name="l00096"></a>00096         <span class="keywordflow">break</span>;
<a name="l00097"></a>00097         <span class="keywordflow">case</span> <a class="code" href="inc_2libofx_8h.html#a7a2e64697569804f14626bbb2649a5894c350d04bb151bc7af01285f8564ff2">OFX_SRVCHG</a>: strncpy(dest_string, <span class="stringliteral">"Service charge"</span>, <span class="keyword">sizeof</span>(dest_string));
<a name="l00098"></a>00098         <span class="keywordflow">break</span>;
<a name="l00099"></a>00099         <span class="keywordflow">case</span> <a class="code" href="inc_2libofx_8h.html#a7a2e64697569804f14626bbb2649a58d47566169d26dcbd4effe5bee0a5e02d">OFX_DEP</a>: strncpy(dest_string, <span class="stringliteral">"Deposit"</span>, <span class="keyword">sizeof</span>(dest_string));
<a name="l00100"></a>00100         <span class="keywordflow">break</span>;
<a name="l00101"></a>00101         <span class="keywordflow">case</span> <a class="code" href="inc_2libofx_8h.html#a7a2e64697569804f14626bbb2649a5864b99c67932f371b0793f91786dfcbce">OFX_ATM</a>: strncpy(dest_string, <span class="stringliteral">"ATM debit or credit (Note: Depends on signage of amount)"</span>, <span class="keyword">sizeof</span>(dest_string));
<a name="l00102"></a>00102         <span class="keywordflow">break</span>;
<a name="l00103"></a>00103         <span class="keywordflow">case</span> <a class="code" href="inc_2libofx_8h.html#a7a2e64697569804f14626bbb2649a5815566db98285da8aa8c4f3b7b9fabc6e">OFX_POS</a>: strncpy(dest_string, <span class="stringliteral">"Point of sale debit or credit (Note: Depends on signage of amount)"</span>, <span class="keyword">sizeof</span>(dest_string));
<a name="l00104"></a>00104         <span class="keywordflow">break</span>;
<a name="l00105"></a>00105         <span class="keywordflow">case</span> <a class="code" href="inc_2libofx_8h.html#a7a2e64697569804f14626bbb2649a580cacbc14384739342490f0ee8662e4b6">OFX_XFER</a>: strncpy(dest_string, <span class="stringliteral">"Transfer"</span>, <span class="keyword">sizeof</span>(dest_string));
<a name="l00106"></a>00106         <span class="keywordflow">break</span>;
<a name="l00107"></a>00107         <span class="keywordflow">case</span> <a class="code" href="inc_2libofx_8h.html#a7a2e64697569804f14626bbb2649a58791ae71426db867d29e0ce41fe8f4d02">OFX_CHECK</a>: strncpy(dest_string, <span class="stringliteral">"Check"</span>, <span class="keyword">sizeof</span>(dest_string));
<a name="l00108"></a>00108         <span class="keywordflow">break</span>;
<a name="l00109"></a>00109         <span class="keywordflow">case</span> <a class="code" href="inc_2libofx_8h.html#a7a2e64697569804f14626bbb2649a5844e13043cd858cc10e0d298c21373ce3">OFX_PAYMENT</a>: strncpy(dest_string, <span class="stringliteral">"Electronic payment"</span>, <span class="keyword">sizeof</span>(dest_string));
<a name="l00110"></a>00110         <span class="keywordflow">break</span>;
<a name="l00111"></a>00111         <span class="keywordflow">case</span> <a class="code" href="inc_2libofx_8h.html#a7a2e64697569804f14626bbb2649a584bef7088f38bcefd900bacc7956f969a">OFX_CASH</a>: strncpy(dest_string, <span class="stringliteral">"Cash withdrawal"</span>, <span class="keyword">sizeof</span>(dest_string));
<a name="l00112"></a>00112         <span class="keywordflow">break</span>;
<a name="l00113"></a>00113         <span class="keywordflow">case</span> <a class="code" href="inc_2libofx_8h.html#a7a2e64697569804f14626bbb2649a581eec1a02b6945ca4ab70e79c617b97ed">OFX_DIRECTDEP</a>: strncpy(dest_string, <span class="stringliteral">"Direct deposit"</span>, <span class="keyword">sizeof</span>(dest_string));
<a name="l00114"></a>00114         <span class="keywordflow">break</span>;
<a name="l00115"></a>00115         <span class="keywordflow">case</span> <a class="code" href="inc_2libofx_8h.html#a7a2e64697569804f14626bbb2649a58c66a49bd7d3e0e14a88c2ea30941efef">OFX_DIRECTDEBIT</a>: strncpy(dest_string, <span class="stringliteral">"Merchant initiated debit"</span>, <span class="keyword">sizeof</span>(dest_string));
<a name="l00116"></a>00116         <span class="keywordflow">break</span>;
<a name="l00117"></a>00117         <span class="keywordflow">case</span> <a class="code" href="inc_2libofx_8h.html#a7a2e64697569804f14626bbb2649a58f2b3f6d44dd25fd77be05880ec2a4edf">OFX_REPEATPMT</a>: strncpy(dest_string, <span class="stringliteral">"Repeating payment/standing order"</span>, <span class="keyword">sizeof</span>(dest_string));
<a name="l00118"></a>00118         <span class="keywordflow">break</span>;
<a name="l00119"></a>00119         <span class="keywordflow">case</span> <a class="code" href="inc_2libofx_8h.html#a7a2e64697569804f14626bbb2649a5867e1508a2089ea04720e582036f45101">OFX_OTHER</a>: strncpy(dest_string, <span class="stringliteral">"Other"</span>, <span class="keyword">sizeof</span>(dest_string));
<a name="l00120"></a>00120         <span class="keywordflow">break</span>;
<a name="l00121"></a>00121         <span class="keywordflow">default</span> : strncpy(dest_string, <span class="stringliteral">"Unknown transaction type"</span>, <span class="keyword">sizeof</span>(dest_string));
<a name="l00122"></a>00122         <span class="keywordflow">break</span>;
<a name="l00123"></a>00123     }
<a name="l00124"></a>00124     sprintf(trans_buff, <span class="stringliteral">"L%s%s"</span>,dest_string,<span class="stringliteral">"\n"</span>);
<a name="l00125"></a>00125     strncat(trans_list_buff, trans_buff, <span class="keyword">sizeof</span>(trans_list_buff)-1 - strlen(trans_list_buff));
<a name="l00126"></a>00126 }
<a name="l00127"></a>00127  strcpy(trans_buff, <span class="stringliteral">"^\n"</span>);
<a name="l00128"></a>00128  strncat(trans_list_buff, trans_buff, <span class="keyword">sizeof</span>(trans_list_buff)-1 - strlen(trans_list_buff));
<a name="l00129"></a>00129  fputs(trans_list_buff,stdout);
<a name="l00130"></a>00130  <span class="keywordflow">return</span> 0;
<a name="l00131"></a>00131 }<span class="comment">/* end ofx_proc_transaction() */</span>
<a name="l00132"></a>00132 
<a name="l00133"></a><a class="code" href="ofx2qif_8c.html#8f46bf3d68bbd9cc9d6471d310168b45">00133</a> <span class="keywordtype">int</span> <a class="code" href="ofx2qif_8c.html#8f46bf3d68bbd9cc9d6471d310168b45">ofx_proc_statement_cb</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structOfxStatementData.html" title="An abstraction of an account statement.">OfxStatementData</a> data, <span class="keywordtype">void</span> * statement_data)
<a name="l00134"></a>00134 {
<a name="l00135"></a>00135   <span class="keyword">struct </span>tm temp_tm;
<a name="l00136"></a>00136 
<a name="l00137"></a>00137   printf(<span class="stringliteral">"!Account\n"</span>);
<a name="l00138"></a>00138   <span class="keywordflow">if</span>(data.<a class="code" href="structOfxStatementData.html#4b8bbe8628d3d46c3e15f5da80cc1376">account_id_valid</a>==<span class="keyword">true</span>){
<a name="l00139"></a>00139     <span class="comment">/* Use the account id as the qif name of the account */</span>
<a name="l00140"></a>00140     printf(<span class="stringliteral">"N%s%s"</span>,data.<a class="code" href="structOfxStatementData.html#cd99765bce8370da01fba9f747605ae4">account_id</a>,<span class="stringliteral">"\n"</span>);
<a name="l00141"></a>00141   }
<a name="l00142"></a>00142   <span class="keywordflow">if</span>(data.<a class="code" href="structOfxStatementData.html#66b74dfa48ca2b9e606ba408c30fa0aa">account_ptr</a>-&gt;<a class="code" href="structOfxAccountData.html#90d39920acba465ae84c17e35c301e04">account_type_valid</a>==<span class="keyword">true</span>)
<a name="l00143"></a>00143     {
<a name="l00144"></a>00144       <span class="keywordflow">switch</span>(data.<a class="code" href="structOfxStatementData.html#66b74dfa48ca2b9e606ba408c30fa0aa">account_ptr</a>-&gt;<a class="code" href="structOfxAccountData.html#86c1f1fc9d27be97de56b2ca1feef70f">account_type</a>){
<a name="l00145"></a>00145       <span class="keywordflow">case</span> OFX_CHECKING : printf(<span class="stringliteral">"TBank\n"</span>);
<a name="l00146"></a>00146         <span class="keywordflow">break</span>;
<a name="l00147"></a>00147       <span class="keywordflow">case</span> OFX_SAVINGS :  printf(<span class="stringliteral">"TBank\n"</span>);
<a name="l00148"></a>00148         <span class="keywordflow">break</span>;
<a name="l00149"></a>00149       <span class="keywordflow">case</span> OFX_MONEYMRKT :  printf(<span class="stringliteral">"TOth A\n"</span>);
<a name="l00150"></a>00150         <span class="keywordflow">break</span>;
<a name="l00151"></a>00151       <span class="keywordflow">case</span> OFX_CREDITLINE :  printf(<span class="stringliteral">"TOth L\n"</span>);
<a name="l00152"></a>00152         <span class="keywordflow">break</span>;
<a name="l00153"></a>00153       <span class="keywordflow">case</span> OFX_CMA :  printf(<span class="stringliteral">"TOth A\n"</span>);
<a name="l00154"></a>00154         <span class="keywordflow">break</span>;
<a name="l00155"></a>00155       <span class="keywordflow">case</span> OFX_CREDITCARD :   printf(<span class="stringliteral">"TCCard\n"</span>);
<a name="l00156"></a>00156         <span class="keywordflow">break</span>;
<a name="l00157"></a>00157       <span class="keywordflow">default</span>: perror(<span class="stringliteral">"WRITEME: ofx_proc_account() This is an unknown account type!"</span>);
<a name="l00158"></a>00158       }
<a name="l00159"></a>00159     }
<a name="l00160"></a>00160   printf(<span class="stringliteral">"DOFX online account\n"</span>);
<a name="l00161"></a>00161 
<a name="l00162"></a>00162   <span class="keywordflow">if</span>(data.<a class="code" href="structOfxStatementData.html#765dfa1991995af8a2c72b774df6cb6d">ledger_balance_date_valid</a>==<span class="keyword">true</span>){
<a name="l00163"></a>00163     temp_tm = *localtime(&amp;(data.<a class="code" href="structOfxStatementData.html#57f9892d09da4a6d69c44b7f9af45fc0">ledger_balance_date</a>));
<a name="l00164"></a>00164     printf(<span class="stringliteral">"/%d%s%d%s%d%s"</span>, temp_tm.tm_mday, <span class="stringliteral">"/"</span>, temp_tm.tm_mon+1, <span class="stringliteral">"/"</span>, temp_tm.tm_year+1900, <span class="stringliteral">"\n"</span>);
<a name="l00165"></a>00165   }
<a name="l00166"></a>00166   <span class="keywordflow">if</span>(data.<a class="code" href="structOfxStatementData.html#136fbe89d69d2290cd3604cfb396bda0">ledger_balance_valid</a>==<span class="keyword">true</span>){
<a name="l00167"></a>00167     printf(<span class="stringliteral">"$%.2f%s"</span>,data.<a class="code" href="structOfxStatementData.html#0827aef2ae2cd523320ea479dfae5cdc">ledger_balance</a>,<span class="stringliteral">"\n"</span>);
<a name="l00168"></a>00168   }
<a name="l00169"></a>00169   printf(<span class="stringliteral">"^\n"</span>);
<a name="l00170"></a>00170   <span class="comment">/*The transactions will follow, here is the header */</span>
<a name="l00171"></a>00171   <span class="keywordflow">if</span>(data.<a class="code" href="structOfxStatementData.html#66b74dfa48ca2b9e606ba408c30fa0aa">account_ptr</a>-&gt;<a class="code" href="structOfxAccountData.html#90d39920acba465ae84c17e35c301e04">account_type_valid</a>==<span class="keyword">true</span>){
<a name="l00172"></a>00172     <span class="keywordflow">switch</span>(data.<a class="code" href="structOfxStatementData.html#66b74dfa48ca2b9e606ba408c30fa0aa">account_ptr</a>-&gt;<a class="code" href="structOfxAccountData.html#86c1f1fc9d27be97de56b2ca1feef70f">account_type</a>){
<a name="l00173"></a>00173     <span class="keywordflow">case</span> OFX_CHECKING : printf(<span class="stringliteral">"!Type:Bank\n"</span>);
<a name="l00174"></a>00174       <span class="keywordflow">break</span>;
<a name="l00175"></a>00175     <span class="keywordflow">case</span> OFX_SAVINGS : printf(<span class="stringliteral">"!Type:Bank\n"</span>);
<a name="l00176"></a>00176       <span class="keywordflow">break</span>;
<a name="l00177"></a>00177     <span class="keywordflow">case</span> OFX_MONEYMRKT : printf(<span class="stringliteral">"!Type:Oth A\n"</span>);
<a name="l00178"></a>00178       <span class="keywordflow">break</span>;
<a name="l00179"></a>00179     <span class="keywordflow">case</span> OFX_CREDITLINE : printf(<span class="stringliteral">"!Type:Oth L\n"</span>);
<a name="l00180"></a>00180       <span class="keywordflow">break</span>;
<a name="l00181"></a>00181     <span class="keywordflow">case</span> OFX_CMA : printf(<span class="stringliteral">"!Type:Oth A\n"</span>);
<a name="l00182"></a>00182       <span class="keywordflow">break</span>;
<a name="l00183"></a>00183     <span class="keywordflow">case</span> OFX_CREDITCARD : printf(<span class="stringliteral">"!Type:CCard\n"</span>);
<a name="l00184"></a>00184       <span class="keywordflow">break</span>;
<a name="l00185"></a>00185     <span class="keywordflow">default</span>: perror(<span class="stringliteral">"WRITEME: ofx_proc_account() This is an unknown account type!"</span>);
<a name="l00186"></a>00186     }
<a name="l00187"></a>00187   }
<a name="l00188"></a>00188 
<a name="l00189"></a>00189   <span class="keywordflow">return</span> 0;
<a name="l00190"></a>00190 }<span class="comment">/* end ofx_proc_statement() */</span>
<a name="l00191"></a>00191   
<a name="l00192"></a><a class="code" href="ofx2qif_8c.html#38eb5d0ff22f171823f8d507255460bd">00192</a> <span class="keywordtype">int</span> <a class="code" href="ofx2qif_8c.html#38eb5d0ff22f171823f8d507255460bd">ofx_proc_account_cb</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structOfxAccountData.html" title="An abstraction of an account.">OfxAccountData</a> data, <span class="keywordtype">void</span> * account_data)
<a name="l00193"></a>00193 {
<a name="l00194"></a>00194   <span class="keywordtype">char</span> dest_string[255]=<span class="stringliteral">""</span>;
<a name="l00195"></a>00195   
<a name="l00196"></a>00196   
<a name="l00197"></a>00197   <span class="comment">//    strncat(trans_list_buff, dest_string, QIF_FILE_MAX_SIZE - strlen(trans_list_buff));</span>
<a name="l00198"></a>00198   fputs(dest_string,stdout);
<a name="l00199"></a>00199  <span class="keywordflow">return</span> 0;
<a name="l00200"></a>00200 }<span class="comment">/* end ofx_proc_account() */</span>
<a name="l00201"></a>00201 
<a name="l00202"></a><a class="code" href="ofx2qif_8c.html#0ddf1224851353fc92bfbff6f499fa97">00202</a> <span class="keywordtype">int</span> <a class="code" href="ofx2qif_8c.html#0ddf1224851353fc92bfbff6f499fa97">main</a> (<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> *argv[])
<a name="l00203"></a>00203 {
<a name="l00204"></a>00204 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="messages_8cpp.html#c58dfba31a4541023b331efa4f3a5079">ofx_PARSER_msg</a>;
<a name="l00205"></a>00205 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="messages_8cpp.html#114453d10ab7a0a82485eb535ea2cad6">ofx_DEBUG_msg</a>;
<a name="l00206"></a>00206 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="messages_8cpp.html#906d9d0b5311d914db311210f9cdce58">ofx_WARNING_msg</a>;
<a name="l00207"></a>00207 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="messages_8cpp.html#2b3d2ad175f65de9d36f47f959741f72">ofx_ERROR_msg</a>;
<a name="l00208"></a>00208 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="messages_8cpp.html#228b326318901fc303c91ed75f45ba64">ofx_INFO_msg</a>;
<a name="l00209"></a>00209 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="messages_8cpp.html#9d3605349a492ff39e5b2a006d773cbf">ofx_STATUS_msg</a>;
<a name="l00210"></a>00210  ofx_PARSER_msg = <span class="keyword">false</span>;
<a name="l00211"></a>00211  ofx_DEBUG_msg = <span class="keyword">false</span>;
<a name="l00212"></a>00212  ofx_WARNING_msg = <span class="keyword">false</span>;
<a name="l00213"></a>00213  ofx_ERROR_msg = <span class="keyword">false</span>;
<a name="l00214"></a>00214  ofx_INFO_msg = <span class="keyword">false</span>;
<a name="l00215"></a>00215  ofx_STATUS_msg = <span class="keyword">false</span>;
<a name="l00216"></a>00216 
<a name="l00217"></a>00217  <a class="code" href="inc_2libofx_8h.html#cb05196108aab07092d1b4931577b87c">LibofxContextPtr</a> libofx_context = <a class="code" href="inc_2libofx_8h.html#e2f086d4e5fdf4b314640ea8fed400b0" title="Initialise the library and return a new context.">libofx_get_new_context</a>();
<a name="l00218"></a>00218  <a class="code" href="inc_2libofx_8h.html#afd8ce6626b070ec64479e7993e6fc07">ofx_set_statement_cb</a>(libofx_context, <a class="code" href="ofx2qif_8c.html#8f46bf3d68bbd9cc9d6471d310168b45">ofx_proc_statement_cb</a>, 0);
<a name="l00219"></a>00219  <a class="code" href="inc_2libofx_8h.html#2bdf268c693b4cadf88a19796c026a2c">ofx_set_account_cb</a>(libofx_context, <a class="code" href="ofx2qif_8c.html#38eb5d0ff22f171823f8d507255460bd">ofx_proc_account_cb</a>, 0);
<a name="l00220"></a>00220  <a class="code" href="inc_2libofx_8h.html#0f47dac1e503298ff60e9d6bdc5a5775">ofx_set_transaction_cb</a>(libofx_context, <a class="code" href="ofx2qif_8c.html#7850aaa7c07cabcacb6849e82f773463">ofx_proc_transaction_cb</a>, 0);
<a name="l00221"></a>00221 
<a name="l00222"></a>00222  <span class="keywordflow">if</span>(argc &gt;= 2){
<a name="l00223"></a>00223    <a class="code" href="inc_2libofx_8h.html#f5c4a0387f06b5cccd483a1fd392f805" title="libofx_proc_file is the entry point of the library.">libofx_proc_file</a>(libofx_context, argv[1], <a class="code" href="inc_2libofx_8h.html#954c5e33f48105c5d932d4842e7736de08ab55dc6141faaa0b67a401e9a8801d">OFX</a>);
<a name="l00224"></a>00224  }
<a name="l00225"></a>00225  <span class="keywordflow">return</span> <a class="code" href="inc_2libofx_8h.html#e76c85ae1e58b1bb41abf7eb3aca0baf" title="Free all ressources used by this context.">libofx_free_context</a>(libofx_context);
<a name="l00226"></a>00226 }
<a name="l00227"></a>00227 
<a name="l00228"></a>00228 
<a name="l00229"></a>00229 
<a name="l00230"></a>00230 
<a name="l00231"></a>00231 
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Mon Nov 19 20:27:58 2007 for LibOFX by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>