Very experimental quote wrapping
This commit is contained in:
parent
5c21601d3e
commit
cf8d05c017
@ -784,8 +784,11 @@ int main(int argc, char **argv)
|
|||||||
char buffer[256];
|
char buffer[256];
|
||||||
FILE *fptr;
|
FILE *fptr;
|
||||||
char *body;
|
char *body;
|
||||||
int i;
|
char *unwrapped_quote;
|
||||||
|
int unwrapped_quote_len;
|
||||||
|
int i, j;
|
||||||
|
int last_space;
|
||||||
|
int start_line;
|
||||||
msgpath = NULL;
|
msgpath = NULL;
|
||||||
|
|
||||||
#if _MSC_VER
|
#if _MSC_VER
|
||||||
@ -930,6 +933,84 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
quote_line_count = 0;
|
quote_line_count = 0;
|
||||||
if (!noquote) {
|
if (!noquote) {
|
||||||
|
unwrapped_quote_len = 0;
|
||||||
|
fgets(buffer, 80, fptr);
|
||||||
|
while (!feof(fptr)) {
|
||||||
|
if (buffer[strlen(buffer) - 2] == '\r') {
|
||||||
|
buffer[strlen(buffer) - 1] = '\0';
|
||||||
|
} else if (buffer[strlen(buffer) - 1] == '\n') {
|
||||||
|
buffer[strlen(buffer) - 1] = '\r';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (unwrapped_quote_len == 0) {
|
||||||
|
unwrapped_quote = (char *)malloc(strlen(buffer) + 1);
|
||||||
|
strcpy(unwrapped_quote, buffer);
|
||||||
|
unwrapped_quote_len = strlen(unwrapped_quote);
|
||||||
|
} else {
|
||||||
|
unwrapped_quote = (char *)realloc(unwrapped_quote, unwrapped_quote_len + strlen(buffer) + 1);
|
||||||
|
strcat(unwrapped_quote, buffer);
|
||||||
|
unwrapped_quote_len = strlen(unwrapped_quote);
|
||||||
|
}
|
||||||
|
|
||||||
|
fgets(buffer, 80, fptr);
|
||||||
|
}
|
||||||
|
fclose(fptr);
|
||||||
|
unlink(msgtmp);
|
||||||
|
|
||||||
|
// remove unneeded CRs
|
||||||
|
for (i=0;i<unwrapped_quote_len;i++) {
|
||||||
|
if (unwrapped_quote[i] == '\r') {
|
||||||
|
if (i > 0) {
|
||||||
|
if (unwrapped_quote[i-1] == ' ') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (i < unwrapped_quote_len - 1) {
|
||||||
|
if (unwrapped_quote[i+1] == ' ') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
unwrapped_quote[i] = ' ';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// now wrap the quotes at 73 columns
|
||||||
|
start_line = 0;
|
||||||
|
j = 0;
|
||||||
|
for (i=0;i<unwrapped_quote_len;i++) {
|
||||||
|
if (unwrapped_quote[i] == ' ') {
|
||||||
|
last_space = i;
|
||||||
|
}
|
||||||
|
if (j == 73) {
|
||||||
|
if (quote_line_count == 0) {
|
||||||
|
quote_lines = (char **)malloc(sizeof(char *));
|
||||||
|
} else {
|
||||||
|
quote_lines = (char **)realloc(quote_lines, sizeof(char *) * (quote_line_count + 1));
|
||||||
|
}
|
||||||
|
if (unwrapped_quote[i] == '\r' || unwrapped_quote[i] == ' ' || i - last_space > 71) {
|
||||||
|
quote_lines[quote_line_count] = (char *)malloc(i - start_line + 1);
|
||||||
|
memset(buffer, 0, 256);
|
||||||
|
strncpy(buffer, &unwrapped_quote[start_line], 73);
|
||||||
|
sprintf(quote_lines[quote_line_count], " %c> %s", msgto[0], buffer);
|
||||||
|
j = 0;
|
||||||
|
start_line = i+1;
|
||||||
|
} else {
|
||||||
|
quote_lines[quote_line_count] = (char *)malloc(last_space - start_line + 5);
|
||||||
|
memset(buffer, 0, 256);
|
||||||
|
strncpy(buffer, &unwrapped_quote[start_line], start_line - last_space + 1);
|
||||||
|
sprintf(quote_lines[quote_line_count], " %c> %s", msgto[0], buffer);
|
||||||
|
j = 0;
|
||||||
|
start_line = last_space+1;
|
||||||
|
i = last_space + 1;
|
||||||
|
}
|
||||||
|
quote_line_count++;
|
||||||
|
} else {
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
fgets(buffer, 73, fptr);
|
fgets(buffer, 73, fptr);
|
||||||
while (!feof(fptr)) {
|
while (!feof(fptr)) {
|
||||||
for (i=strlen(buffer) - 1; i >= 0; i--) {
|
for (i=strlen(buffer) - 1; i >= 0; i--) {
|
||||||
@ -954,8 +1035,8 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
fgets(buffer, 73, fptr);
|
fgets(buffer, 73, fptr);
|
||||||
}
|
}
|
||||||
fclose(fptr);
|
*/
|
||||||
unlink(msgtmp);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
body = message_editor();
|
body = message_editor();
|
||||||
|
Reference in New Issue
Block a user