20
20
/* ------------------------------------------------------------
23
*--------------------------------------------------------------*/
23
*--------------------------------------------------------------*/
25
25
#include "globalvars.h"
26
26
#include "edit_last.h"
27
27
#include "clear_display.h"
29
char logline_edit[5][82];
29
char logline_edit[5][88];
31
31
int edit_last(void)
39
stop_backgrnd_process = 1; //(no qso add during edit process)
43
attron(COLOR_PAIR(COLOR_GREEN));
44
mvprintw(7 + editline,0, logline_edit[editline]);
49
mvprintw(7 + editline, b, "");
51
while ((j != 27) && (j != '\n')){
55
if(j == 1) { // ctrl A, beginning of line
57
attron(COLOR_PAIR(COLOR_GREEN) | A_STANDOUT);
58
mvprintw(7 + editline,0, logline_edit[editline]);
59
mvprintw(7 + editline, b, "");
61
}else if(j == 5) { // ctrl E, end of line
63
attron(COLOR_PAIR(COLOR_GREEN) | A_STANDOUT);
64
mvprintw(7 + editline,0, logline_edit[editline]);
65
mvprintw(7 + editline, b, "");
67
}else if(j == 9) { // TAB, next field
69
else if (b == 17) b = 29;
70
else if (b == 29) b = 54;
71
else if (b == 54) b = 68;
72
else if (b == 68) b = 77;
73
else if (b == 77) b = 1;
75
attron(COLOR_PAIR(COLOR_GREEN) | A_STANDOUT);
76
mvprintw(7 + editline,0, logline_edit[editline]);
77
mvprintw(7 + editline, b, "");
80
}else if(j == 152) { // up
81
if (editline > (6-nr_qsos) && (editline > 0)) {
82
attron(COLOR_PAIR(COLOR_WHITE) | A_STANDOUT);
83
mvprintw(7 + editline,0, logline_edit[editline]);
85
attron(COLOR_PAIR(COLOR_GREEN) | A_STANDOUT);
86
mvprintw(7 + editline,0, logline_edit[editline]);
87
mvprintw(7 + editline, b, "");
95
}else if(j == 153) { // down
98
attron(COLOR_PAIR(COLOR_WHITE) | A_STANDOUT);
99
mvprintw(7 + editline,0, logline_edit[editline]);
101
attron(COLOR_PAIR(COLOR_GREEN) | A_STANDOUT);
102
mvprintw(7 + editline,0, logline_edit[editline]);
103
mvprintw(7 + editline, b, "");
106
} else j = 27; /* escape */
114
mvprintw(7 + editline, 0, logline_edit[editline]);
115
mvprintw(7 + editline, b, "");
122
mvprintw(7 + editline,0, logline_edit[editline]);
123
mvprintw(7 + editline, b, "");
126
} else if ((j == 160) && (b >= 0 ) && ( b< 28 ) ) { // insert
128
for (k = 28; k >b; k--)
129
logline_edit[editline][k] = logline_edit[editline][k-1];
130
logline_edit[editline][b] = ' ';
131
mvprintw(7 + editline,0, logline_edit[editline]);
132
mvprintw(7 + editline, b, "");
135
} else if ((j == 160) && (b >= 29 ) && ( b< 39 ) ) { // insert call
136
for (k = 39; k >b; k--)
137
logline_edit[editline][k] = logline_edit[editline][k-1];
138
logline_edit[editline][b] = ' ';
139
mvprintw(7 + editline,0, logline_edit[editline]);
140
mvprintw(7 + editline, b, "");
143
} else if ((j == 160) && (b >= 54 ) && ( b< 64 ) ) { // insert
145
for (k = 64; k >b; k--)
146
logline_edit[editline][k] = logline_edit[editline][k-1];
147
logline_edit[editline][b] = ' ';
148
mvprintw(7 + editline,0, logline_edit[editline]);
149
mvprintw(7 + editline, b, "");
152
} else if ((j == 160) && (b >= 68 ) && ( b< 76 ) ) { // insert
154
for (k = 76; k >b; k--)
155
logline_edit[editline][k] = logline_edit[editline][k-1];
156
logline_edit[editline][b] = ' ';
157
mvprintw(7 + editline,0, logline_edit[editline]);
158
mvprintw(7 + editline, b, "");
161
} else if ((j == 161) && (b >= 1 ) && ( b< 28 )) { // delete
163
for (k = b; k < 28; k++)
164
logline_edit[editline][k] = logline_edit[editline][k+1];
166
mvprintw(7 + editline,0, logline_edit[editline]);
167
mvprintw(7 + editline, b, "");
171
} else if ((j == 161) && (b >= 29 ) && ( b< 39 )) { // delete
173
for (k = b; k < 39; k++)
174
logline_edit[editline][k] = logline_edit[editline][k+1];
176
mvprintw(7 + editline,0, logline_edit[editline]);
177
mvprintw(7 + editline, b, "");
180
} else if ((j == 161) && (b >= 68 ) && ( b< 76 )) { // delete
182
for (k = b; k < 76; k++)
183
logline_edit[editline][k] = logline_edit[editline][k+1];
185
mvprintw(7 + editline,0, logline_edit[editline]);
186
mvprintw(7 + editline, b, "");
189
} else if ((j == 161) && (b >= 54 ) && ( b< 64 )) { // delete
191
for (k = b; k < 64; k++)
192
logline_edit[editline][k] = logline_edit[editline][k+1];
194
mvprintw(7 + editline,0, logline_edit[editline]);
195
mvprintw(7 + editline, b, "");
201
if ((j >= 97) && (j <= 122))
203
if ((j >= 32) && (j<97)){
204
logline_edit[editline][b] = j;
205
mvprintw(7 + editline,0, logline_edit[editline]);
206
if ((b < strlen(logline_edit[editline])-2) && (b < 80))
208
mvprintw(7 + editline, b, "");
216
attron(COLOR_PAIR(COLOR_WHITE) | A_STANDOUT);
218
mvprintw(7 + editline,0, logline_edit[editline]);
221
if ((lfile = open(logfile, O_RDWR)) < 0){
223
mvprintw(24,0, "I can not find the logfile...");
229
for (ii = 4; ii >=0; ii--) {
231
fstat(lfile, &statbuf);
233
if(statbuf.st_size > 80) {
234
ftruncate(lfile, statbuf.st_size - 81);
236
qsos[nr_qsos][0]='\0';
34
int j = 0, b, k, ii = 0;
39
stop_backgrnd_process = 1; //(no qso add during edit process)
43
attron(COLOR_PAIR(COLOR_GREEN));
44
mvprintw(7 + editline, 0, logline_edit[editline]);
48
mvprintw(7 + editline, b, "");
50
while ((j != 27) && (j != '\n')) {
54
if (j == 1) { // ctrl A, beginning of line
56
attron(COLOR_PAIR(COLOR_GREEN) | A_STANDOUT);
57
mvprintw(7 + editline, 0, logline_edit[editline]);
58
mvprintw(7 + editline, b, "");
60
} else if (j == 5) { // ctrl E, end of line
62
attron(COLOR_PAIR(COLOR_GREEN) | A_STANDOUT);
63
mvprintw(7 + editline, 0, logline_edit[editline]);
64
mvprintw(7 + editline, b, "");
66
} else if (j == 9) { // TAB, next field
80
attron(COLOR_PAIR(COLOR_GREEN) | A_STANDOUT);
81
mvprintw(7 + editline, 0, logline_edit[editline]);
82
mvprintw(7 + editline, b, "");
85
} else if (j == 152) { // up
86
if (editline > (6 - nr_qsos) && (editline > 0)) {
87
attron(COLOR_PAIR(COLOR_WHITE) | A_STANDOUT);
88
mvprintw(7 + editline, 0, logline_edit[editline]);
90
attron(COLOR_PAIR(COLOR_GREEN) | A_STANDOUT);
91
mvprintw(7 + editline, 0, logline_edit[editline]);
92
mvprintw(7 + editline, b, "");
100
} else if (j == 153) { // down
103
attron(COLOR_PAIR(COLOR_WHITE) | A_STANDOUT);
104
mvprintw(7 + editline, 0, logline_edit[editline]);
106
attron(COLOR_PAIR(COLOR_GREEN) | A_STANDOUT);
107
mvprintw(7 + editline, 0, logline_edit[editline]);
108
mvprintw(7 + editline, b, "");
114
} else if (j == 155) {
119
mvprintw(7 + editline, 0, logline_edit[editline]);
120
mvprintw(7 + editline, b, "");
123
} else if (j == 154) {
127
mvprintw(7 + editline, 0, logline_edit[editline]);
128
mvprintw(7 + editline, b, "");
131
} else if ((j == 160) && (b >= 0) && (b < 28)) { // insert
133
for (k = 28; k > b; k--)
134
logline_edit[editline][k] = logline_edit[editline][k - 1];
135
logline_edit[editline][b] = ' ';
136
mvprintw(7 + editline, 0, logline_edit[editline]);
137
mvprintw(7 + editline, b, "");
140
} else if ((j == 160) && (b >= 29) && (b < 39)) { // insert call
141
for (k = 39; k > b; k--)
142
logline_edit[editline][k] = logline_edit[editline][k - 1];
143
logline_edit[editline][b] = ' ';
144
mvprintw(7 + editline, 0, logline_edit[editline]);
145
mvprintw(7 + editline, b, "");
148
} else if ((j == 160) && (b >= 54) && (b < 64)) { // insert
150
for (k = 64; k > b; k--)
151
logline_edit[editline][k] = logline_edit[editline][k - 1];
152
logline_edit[editline][b] = ' ';
153
mvprintw(7 + editline, 0, logline_edit[editline]);
154
mvprintw(7 + editline, b, "");
157
} else if ((j == 160) && (b >= 68) && (b < 76)) { // insert
159
for (k = 76; k > b; k--)
160
logline_edit[editline][k] = logline_edit[editline][k - 1];
161
logline_edit[editline][b] = ' ';
162
mvprintw(7 + editline, 0, logline_edit[editline]);
163
mvprintw(7 + editline, b, "");
166
} else if ((j == 161) && (b >= 1) && (b < 28)) { // delete
168
for (k = b; k < 28; k++)
169
logline_edit[editline][k] = logline_edit[editline][k + 1];
171
mvprintw(7 + editline, 0, logline_edit[editline]);
172
mvprintw(7 + editline, b, "");
175
} else if ((j == 161) && (b >= 29) && (b < 39)) { // delete
177
for (k = b; k < 39; k++)
178
logline_edit[editline][k] = logline_edit[editline][k + 1];
180
mvprintw(7 + editline, 0, logline_edit[editline]);
181
mvprintw(7 + editline, b, "");
184
} else if ((j == 161) && (b >= 68) && (b < 76)) { // delete
186
for (k = b; k < 76; k++)
187
logline_edit[editline][k] = logline_edit[editline][k + 1];
189
mvprintw(7 + editline, 0, logline_edit[editline]);
190
mvprintw(7 + editline, b, "");
193
} else if ((j == 161) && (b >= 54) && (b < 64)) { // delete
195
for (k = b; k < 64; k++)
196
logline_edit[editline][k] = logline_edit[editline][k + 1];
198
mvprintw(7 + editline, 0, logline_edit[editline]);
199
mvprintw(7 + editline, b, "");
202
} else if (j != 27) {
204
if ((j >= 97) && (j <= 122))
206
if ((j >= 32) && (j < 97)) {
207
logline_edit[editline][b] = j;
208
mvprintw(7 + editline, 0, logline_edit[editline]);
209
if ((b < strlen(logline_edit[editline]) - 2) && (b < 80))
211
mvprintw(7 + editline, b, "");
217
attron(COLOR_PAIR(COLOR_WHITE) | A_STANDOUT);
219
mvprintw(7 + editline, 0, logline_edit[editline]);
222
if ((lfile = open(logfile, O_RDWR)) < 0) {
224
mvprintw(24, 0, "I can not find the logfile...");
229
for (ii = 4; ii >= 0; ii--) {
231
fstat(lfile, &statbuf);
233
if (statbuf.st_size > 80) {
234
rc = ftruncate(lfile, statbuf.st_size - 81);
236
qsos[nr_qsos][0] = '\0';
251
store_qso(logline_edit[ii]);
251
store_qso(logline_edit[ii]);
258
stop_backgrnd_process = 0;
257
stop_backgrnd_process = 0;