unfolding-function #4
@ -7,7 +7,8 @@
|
|||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
void parse_event(char event_string[], struct event **head) {
|
void parse_event(char event_string[], struct event **head)
|
||||||
|
{
|
||||||
char *start_date = strstr(event_string, "\nDTSTART");
|
char *start_date = strstr(event_string, "\nDTSTART");
|
||||||
char *end_date = strstr(event_string, "\nDTEND");
|
char *end_date = strstr(event_string, "\nDTEND");
|
||||||
char *summary = strstr(event_string, "\nSUMMARY");
|
char *summary = strstr(event_string, "\nSUMMARY");
|
||||||
@ -24,7 +25,8 @@ void parse_event(char event_string[], struct event **head) {
|
|||||||
assert(end_date != NULL);
|
assert(end_date != NULL);
|
||||||
assert(summary != NULL);
|
assert(summary != NULL);
|
||||||
|
|
||||||
strncpy(start_date_str, start_date, strchr(start_date + 1, '\n') - start_date);
|
strncpy(start_date_str, start_date,
|
||||||
|
strchr(start_date + 1, '\n') - start_date);
|
||||||
|
|
||||||
strncpy(end_date_str, end_date, strchr(end_date + 1, '\n') - end_date);
|
strncpy(end_date_str, end_date, strchr(end_date + 1, '\n') - end_date);
|
||||||
|
|
||||||
@ -46,17 +48,21 @@ void parse_event(char event_string[], struct event **head) {
|
|||||||
|
|
||||||
// the unfolded string has a semicolon
|
// the unfolded string has a semicolon
|
||||||
// as a separator between what where previously separate lines
|
// as a separator between what where previously separate lines
|
||||||
void unfolding_string(char* folded_string, char* unfolded_string) {
|
void unfolding_string(char *folded_string, char *unfolded_string)
|
||||||
|
{
|
||||||
int j = 0;
|
int j = 0;
|
||||||
for (int i = 0; i < strlen(folded_string); i++) {
|
for (int i = 0; i < strlen(folded_string); i++) {
|
||||||
if (folded_string[i] == '\r' && folded_string[i+1] == '\n') {
|
if (folded_string[i] == '\r' && folded_string[i + 1] == '\n'
|
||||||
while (isblank(folded_string[i+2])) {
|
&& isblank(folded_string[i + 2])) {
|
||||||
|
i+=3;
|
||||||
|
while (isblank(folded_string[i])) {
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
unfolded_string[j] = folded_string[i];
|
||||||
|
j++;
|
||||||
} else {
|
} else {
|
||||||
unfolded_string[j] = folded_string[i];
|
unfolded_string[j] = folded_string[i];
|
||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user