Revert "enhanced whitespace remover"

This reverts commit abd0afb03a.
This commit is contained in:
Drew DeVault 2015-08-18 08:39:26 -04:00
parent a64b10df83
commit 85a573dab7
4 changed files with 33 additions and 32 deletions

View file

@ -2,8 +2,8 @@
#define _SWAY_STRINGOP_H #define _SWAY_STRINGOP_H
#include "list.h" #include "list.h"
void strip_whitespace(char *str); char *strip_whitespace(char *str, int *trimmed_start);
void strip_comments(char *str); char *strip_comments(char *str);
list_t *split_string(const char *str, const char *delims); list_t *split_string(const char *str, const char *delims);
void free_flat_list(list_t *list); void free_flat_list(list_t *list);
char *code_strchr(const char *string, char delimiter); char *code_strchr(const char *string, char delimiter);

View file

@ -506,7 +506,7 @@ static char **split_directive(char *line, int *argc) {
if (!*line) return parts; if (!*line) return parts;
int in_string = 0, in_character = 0; int in_string = 0, in_character = 0;
int i, j; int i, j, _;
for (i = 0, j = 0; line[i]; ++i) { for (i = 0, j = 0; line[i]; ++i) {
if (line[i] == '\\') { if (line[i] == '\\') {
++i; ++i;
@ -519,7 +519,7 @@ static char **split_directive(char *line, int *argc) {
char *item = malloc(i - j + 1); char *item = malloc(i - j + 1);
strncpy(item, line + j, i - j); strncpy(item, line + j, i - j);
item[i - j] = '\0'; item[i - j] = '\0';
strip_whitespace(item); item = strip_whitespace(item, &_);
if (item[0] == '\0') { if (item[0] == '\0') {
free(item); free(item);
} else { } else {
@ -537,7 +537,7 @@ static char **split_directive(char *line, int *argc) {
char *item = malloc(i - j + 1); char *item = malloc(i - j + 1);
strncpy(item, line + j, i - j); strncpy(item, line + j, i - j);
item[i - j] = '\0'; item[i - j] = '\0';
strip_whitespace(item); item = strip_whitespace(item, &_);
if (*argc == capacity) { if (*argc == capacity) {
capacity++; capacity++;
parts = realloc(parts, sizeof(char *) * capacity); parts = realloc(parts, sizeof(char *) * capacity);

View file

@ -186,9 +186,10 @@ bool read_config(FILE *file, bool is_active) {
int temp_depth = 0; // Temporary: skip all config sections with depth int temp_depth = 0; // Temporary: skip all config sections with depth
while (!feof(file)) { while (!feof(file)) {
int _;
char *line = read_line(file); char *line = read_line(file);
strip_comments(line); line = strip_comments(line);
strip_whitespace(line); line = strip_whitespace(line, &_);
if (!line[0]) { if (!line[0]) {
goto _continue; goto _continue;
} }

View file

@ -1,38 +1,37 @@
#include "stringop.h"
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include <strings.h>
#include <ctype.h>
#include "stringop.h"
#include "string.h" #include "string.h"
#include "list.h" #include "list.h"
#include <strings.h>
/* Note: This returns 8 characters for trimmed_start per tab character. */ /* Note: This returns 8 characters for trimmed_start per tab character. */
void strip_whitespace(char *str) { char *strip_whitespace(char *_str, int *trimmed_start) {
int shift = 0; *trimmed_start = 0;
int bpair = 1; if (*_str == '\0')
int in_str = 0, in_ch = 0; return _str;
while (*str) { char *strold = _str;
str[-shift] = str[0]; while (*_str == ' ' || *_str == '\t') {
if (*str == '"' && !in_ch) { if (*_str == '\t') {
in_str = !in_str; *trimmed_start += 8;
} else if (*str == '\'' && !in_str) { } else {
in_ch = !in_ch; *trimmed_start += 1;
} else if (!in_ch && !in_str) {
if (isblank(*str)) {
if (bpair) {
++shift;
}
bpair=1;
} else {
bpair = 0;
}
} }
++str; _str++;
} }
str[-shift-bpair] = 0; char *str = malloc(strlen(_str) + 1);
strcpy(str, _str);
free(strold);
int i;
for (i = 0; str[i] != '\0'; ++i);
do {
i--;
} while (i >= 0 && (str[i] == ' ' || str[i] == '\t'));
str[i + 1] = '\0';
return str;
} }
void strip_comments(char *str) { char *strip_comments(char *str) {
int in_string = 0, in_character = 0; int in_string = 0, in_character = 0;
int i = 0; int i = 0;
while (str[i] != '\0') { while (str[i] != '\0') {
@ -48,6 +47,7 @@ void strip_comments(char *str) {
} }
++i; ++i;
} }
return str;
} }
list_t *split_string(const char *str, const char *delims) { list_t *split_string(const char *str, const char *delims) {