Apply new code format from CLion

This commit is contained in:
Thomas Jensen 2021-01-27 17:13:17 +01:00
parent dcd2328c77
commit f536d45f7a
No known key found for this signature in database
GPG Key ID: A4ACEE270D0FB7DB
6 changed files with 1022 additions and 897 deletions

File diff suppressed because it is too large Load Diff

View File

@ -5,12 +5,12 @@
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License, version 2, as published
* by the Free Software Foundation.
*
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
@ -26,8 +26,9 @@
#define GENERATE_H
int generate_box (sentry_t *thebox);
int output_box (const sentry_t *thebox);
int generate_box(sentry_t *thebox);
int output_box(const sentry_t *thebox);
#endif /*GENERATE_H*/

File diff suppressed because it is too large Load Diff

View File

@ -5,12 +5,12 @@
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License, version 2, as published
* by the Free Software Foundation.
*
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
@ -34,21 +34,25 @@
char *shape_name[] = {
"NW", "NNW", "N", "NNE", "NE", "ENE", "E", "ESE",
"SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW"
"NW", "NNW", "N", "NNE", "NE", "ENE", "E", "ESE",
"SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW"
};
shape_t north_side[SHAPES_PER_SIDE] = { NW, NNW, N, NNE, NE }; /* clockwise */
shape_t east_side[SHAPES_PER_SIDE] = { NE, ENE, E, ESE, SE };
shape_t south_side[SHAPES_PER_SIDE] = { SE, SSE, S, SSW, SW };
shape_t west_side[SHAPES_PER_SIDE] = { SW, WSW, W, WNW, NW };
shape_t corners[ANZ_CORNERS] = { NW, NE, SE, SW };
shape_t *sides[] = { north_side, east_side, south_side, west_side };
shape_t north_side[SHAPES_PER_SIDE] = {NW, NNW, N, NNE, NE}; /* clockwise */
shape_t east_side[SHAPES_PER_SIDE] = {NE, ENE, E, ESE, SE};
shape_t south_side[SHAPES_PER_SIDE] = {SE, SSE, S, SSW, SW};
shape_t west_side[SHAPES_PER_SIDE] = {SW, WSW, W, WNW, NW};
shape_t corners[ANZ_CORNERS] = {NW, NE, SE, SW};
shape_t *sides[] = {north_side, east_side, south_side, west_side};
shape_t findshape (const sentry_t *sarr, const int num)
shape_t findshape(const sentry_t *sarr, const int num)
/*
* Find a non-empty shape and return its name
*
@ -63,11 +67,12 @@ shape_t findshape (const sentry_t *sarr, const int num)
{
int i;
for (i=0; i<num; ++i) {
if (isempty(sarr+i))
for (i = 0; i < num; ++i) {
if (isempty(sarr + i)) {
continue;
else
} else {
break;
}
}
return (shape_t) i;
@ -75,7 +80,7 @@ shape_t findshape (const sentry_t *sarr, const int num)
int on_side (const shape_t s, const int idx)
int on_side(const shape_t s, const int idx)
/*
* Compute the side that shape s is on.
*
@ -92,13 +97,14 @@ int on_side (const shape_t s, const int idx)
int i;
int found = 0;
for (side=0; side<ANZ_SIDES; ++side) {
for (i=0; i<SHAPES_PER_SIDE; ++i) {
for (side = 0; side < ANZ_SIDES; ++side) {
for (i = 0; i < SHAPES_PER_SIDE; ++i) {
if (sides[side][i] == s) {
if (found == idx)
if (found == idx) {
return side;
else
} else {
++found;
}
}
}
}
@ -108,7 +114,7 @@ int on_side (const shape_t s, const int idx)
int genshape (const size_t width, const size_t height, char ***chars)
int genshape(const size_t width, const size_t height, char ***chars)
/*
* Generate a shape consisting of spaces only.
*
@ -127,26 +133,25 @@ int genshape (const size_t width, const size_t height, char ***chars)
size_t j;
if (width <= 0 || height <= 0 || width > LINE_MAX_BYTES) {
fprintf (stderr, "%s: internal error\n", PROJECT);
fprintf(stderr, "%s: internal error\n", PROJECT);
return 1;
}
*chars = (char **) calloc (height, sizeof(char *));
*chars = (char **) calloc(height, sizeof(char *));
if (*chars == NULL) {
perror (PROJECT);
perror(PROJECT);
return 2;
}
for (j=0; j<height; ++j) {
(*chars)[j] = (char *) calloc (width+1, sizeof(char));
for (j = 0; j < height; ++j) {
(*chars)[j] = (char *) calloc(width + 1, sizeof(char));
if ((*chars)[j] == NULL) {
perror (PROJECT);
for (/*empty*/; j>0; --j)
BFREE ((*chars)[j-1]);
perror(PROJECT);
for (/*empty*/; j > 0; --j) BFREE ((*chars)[j - 1]);
BFREE (*chars);
return 3;
}
memset ((*chars)[j], ' ', width);
memset((*chars)[j], ' ', width);
}
return 0;
@ -154,7 +159,7 @@ int genshape (const size_t width, const size_t height, char ***chars)
void freeshape (sentry_t *shape)
void freeshape(sentry_t *shape)
/*
* Free all memory allocated by the shape and set the struct to
* SENTRY_INITIALIZER. Do not free memory of the struct.
@ -164,8 +169,9 @@ void freeshape (sentry_t *shape)
{
size_t j;
for (j=0; j<shape->height; ++j)
for (j = 0; j < shape->height; ++j) {
BFREE (shape->chars[j]);
}
BFREE (shape->chars);
*shape = SENTRY_INITIALIZER;
@ -173,26 +179,27 @@ void freeshape (sentry_t *shape)
int isempty (const sentry_t *shape)
int isempty(const sentry_t *shape)
/*
* Return true if shape is empty.
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
{
if (shape == NULL)
if (shape == NULL) {
return 1;
else if (shape->chars == NULL)
} else if (shape->chars == NULL) {
return 1;
else if (shape->width == 0 || shape->height == 0)
} else if (shape->width == 0 || shape->height == 0) {
return 1;
else
} else {
return 0;
}
}
int isdeepempty (const sentry_t *shape)
int isdeepempty(const sentry_t *shape)
/*
* Return true if shape is empty, also checking if lines consist of spaces
* only.
@ -202,13 +209,15 @@ int isdeepempty (const sentry_t *shape)
{
size_t j;
if (isempty (shape))
if (isempty(shape)) {
return 1;
}
for (j=0; j<shape->height; ++j) {
for (j = 0; j < shape->height; ++j) {
if (shape->chars[j]) {
if (strspn (shape->chars[j], " ") != shape->width)
if (strspn(shape->chars[j], " ") != shape->width) {
return 0;
}
}
}
@ -217,7 +226,7 @@ int isdeepempty (const sentry_t *shape)
size_t highest (const sentry_t *sarr, const int n, ...)
size_t highest(const sentry_t *sarr, const int n, ...)
/*
* Return height (vert.) of highest shape in given list.
*
@ -235,16 +244,17 @@ size_t highest (const sentry_t *sarr, const int n, ...)
size_t max = 0; /* current maximum height */
#if defined(DEBUG) && 0
fprintf (stderr, "highest (%d, ...)\n", n);
fprintf (stderr, "highest (%d, ...)\n", n);
#endif
va_start (ap, n);
for (i=0; i<n; ++i) {
for (i = 0; i < n; ++i) {
shape_t r = va_arg (ap, shape_t);
if (!isempty (sarr + r)) {
if (sarr[r].height > max)
if (!isempty(sarr + r)) {
if (sarr[r].height > max) {
max = sarr[r].height;
}
}
}
@ -255,7 +265,7 @@ size_t highest (const sentry_t *sarr, const int n, ...)
size_t widest (const sentry_t *sarr, const int n, ...)
size_t widest(const sentry_t *sarr, const int n, ...)
/*
* Return width (horiz.) of widest shape in given list.
*
@ -273,19 +283,20 @@ size_t widest (const sentry_t *sarr, const int n, ...)
size_t max = 0; /* current maximum width */
#if defined(DEBUG) && 0
fprintf (stderr, "widest (%d, ...)\n", n);
fprintf (stderr, "widest (%d, ...)\n", n);
#endif
va_start (ap, n);
for (i=0; i<n; ++i) {
for (i = 0; i < n; ++i) {
shape_t r = va_arg (ap, shape_t);
if (!isempty (sarr + r)) {
if (sarr[r].width > max)
if (!isempty(sarr + r)) {
if (sarr[r].width > max) {
max = sarr[r].width;
}
}
}
va_end (ap);
return max;
@ -293,7 +304,7 @@ size_t widest (const sentry_t *sarr, const int n, ...)
shape_t leftmost (const int aside, const int cnt)
shape_t leftmost(const int aside, const int cnt)
/*
* Return leftmost existing shape in specification for side aside
* (BTOP or BBOT), skipping cnt shapes. Corners are not considered.
@ -307,18 +318,21 @@ shape_t leftmost (const int aside, const int cnt)
int c = 0;
int s;
if (cnt < 0)
if (cnt < 0) {
return ANZ_SHAPES;
}
if (aside == BTOP) {
s = 0;
do {
++s;
while (s < SHAPES_PER_SIDE-1 &&
isempty(opt.design->shape + north_side[s]))
++s;
if (s == SHAPES_PER_SIDE-1)
while (s < SHAPES_PER_SIDE - 1 &&
isempty(opt.design->shape + north_side[s])) {
++s;
}
if (s == SHAPES_PER_SIDE - 1) {
return ANZ_SHAPES;
}
} while (c++ < cnt);
return north_side[s];
}
@ -327,10 +341,12 @@ shape_t leftmost (const int aside, const int cnt)
s = SHAPES_PER_SIDE - 1;
do {
--s;
while (s && isempty(opt.design->shape + south_side[s]))
while (s && isempty(opt.design->shape + south_side[s])) {
--s;
if (!s)
}
if (!s) {
return ANZ_SHAPES;
}
} while (c++ < cnt);
return south_side[s];
}
@ -340,7 +356,7 @@ shape_t leftmost (const int aside, const int cnt)
int empty_side (sentry_t *sarr, const int aside)
int empty_side(sentry_t *sarr, const int aside)
/*
* Return true if the shapes on the given side consist entirely out of
* spaces - and spaces only, tabs are considered non-empty.
@ -356,11 +372,12 @@ int empty_side (sentry_t *sarr, const int aside)
{
int i;
for (i=0; i<SHAPES_PER_SIDE; ++i) {
if (isdeepempty (sarr + sides[aside][i]))
for (i = 0; i < SHAPES_PER_SIDE; ++i) {
if (isdeepempty(sarr + sides[aside][i])) {
continue;
else
return 0; /* side is not empty */
} else {
return 0;
} /* side is not empty */
}
return 1; /* side is empty */

View File

@ -5,12 +5,12 @@
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License, version 2, as published
* by the Free Software Foundation.
*
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
@ -35,7 +35,7 @@
int yyerror (const char *fmt, ...)
int yyerror(const char *fmt, ...)
/*
* Print configuration file parser errors.
*
@ -46,10 +46,10 @@ int yyerror (const char *fmt, ...)
va_start (ap, fmt);
fprintf (stderr, "%s: %s: line %d: ", PROJECT,
yyfilename? yyfilename: "(null)", tjlineno);
vfprintf (stderr, fmt, ap);
fputc ('\n', stderr);
fprintf(stderr, "%s: %s: line %d: ", PROJECT,
yyfilename ? yyfilename : "(null)", tjlineno);
vfprintf(stderr, fmt, ap);
fputc('\n', stderr);
va_end (ap);
@ -58,23 +58,23 @@ int yyerror (const char *fmt, ...)
void regerror (char *msg)
void regerror(char *msg)
/*
* Print regular expression andling error messages
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
{
fprintf (stderr, "%s: %s: line %d: %s\n",
PROJECT, yyfilename? yyfilename: "(null)",
opt.design->current_rule? opt.design->current_rule->line: 0,
fprintf(stderr, "%s: %s: line %d: %s\n",
PROJECT, yyfilename ? yyfilename : "(null)",
opt.design->current_rule ? opt.design->current_rule->line : 0,
msg);
errno = EINVAL;
}
int strisyes (const char *s)
int strisyes(const char *s)
/*
* Determine if the string s has a contents indicating "yes".
*
@ -86,26 +86,28 @@ int strisyes (const char *s)
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
{
if (s == NULL)
if (s == NULL) {
return 0;
}
if (!strncasecmp ("on", s, 3))
if (!strncasecmp("on", s, 3)) {
return 1;
else if (!strncasecmp ("yes", s, 4))
} else if (!strncasecmp("yes", s, 4)) {
return 1;
else if (!strncasecmp ("true", s, 5))
} else if (!strncasecmp("true", s, 5)) {
return 1;
else if (!strncmp ("1", s, 2))
} else if (!strncmp("1", s, 2)) {
return 1;
else if (!strncasecmp ("t", s, 2))
} else if (!strncasecmp("t", s, 2)) {
return 1;
else
} else {
return 0;
}
}
int strisno (const char *s)
int strisno(const char *s)
/*
* Determine if the string s has a contents indicating "no".
*
@ -117,50 +119,53 @@ int strisno (const char *s)
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
{
if (s == NULL)
if (s == NULL) {
return 0;
}
if (!strncasecmp ("off", s, 4))
if (!strncasecmp("off", s, 4)) {
return 1;
else if (!strncasecmp ("no", s, 3))
} else if (!strncasecmp("no", s, 3)) {
return 1;
else if (!strncasecmp ("false", s, 6))
} else if (!strncasecmp("false", s, 6)) {
return 1;
else if (!strncmp ("0", s, 2))
} else if (!strncmp("0", s, 2)) {
return 1;
else if (!strncasecmp ("f", s, 2))
} else if (!strncasecmp("f", s, 2)) {
return 1;
else
} else {
return 0;
}
}
void concat_strings (char *dst, int max_len, int count, ...)
void concat_strings(char *dst, int max_len, int count, ...)
/*
* Concatenate a variable number of strings into a fixed-length buffer.
*
* dst Destination array
* max_len Maximum resulting string length (including terminating NULL).
* count Number of source strings.
*
* The concatenation process terminates when either the destination
*
* The concatenation process terminates when either the destination
* buffer is full or all 'count' strings are processed. Null string
* pointers are treated as empty strings.
*
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
{
va_list va;
va_list va;
const char *src;
va_start (va, count);
/*
* Sanity check.
* Sanity check.
*/
if (max_len < 1)
if (max_len < 1) {
return;
}
if (max_len == 1 || count < 1) {
*dst = '\0';
@ -170,7 +175,7 @@ void concat_strings (char *dst, int max_len, int count, ...)
/*
* Loop over all input strings.
*/
while (count-->0 && max_len > 1) {
while (count-- > 0 && max_len > 1) {
/*
* Grab an input string pointer. If it's NULL, skip it (eg. treat
@ -178,10 +183,11 @@ void concat_strings (char *dst, int max_len, int count, ...)
*/
src = va_arg (va, const char *);
if (src == NULL)
if (src == NULL) {
continue;
}
/*
/*
* Concatenate 'src' onto 'dst', as long as we have room.
*/
while (*src && max_len > 1) {
@ -200,7 +206,7 @@ void concat_strings (char *dst, int max_len, int count, ...)
int empty_line (const line_t *line)
int empty_line(const line_t *line)
/*
* Return true if line is empty.
*
@ -212,22 +218,25 @@ int empty_line (const line_t *line)
char *p;
size_t j;
if (!line)
if (!line) {
return 1;
if (line->text == NULL || line->len <= 0)
}
if (line->text == NULL || line->len <= 0) {
return 1;
}
for (p=line->text, j=0; *p && j<line->len; ++j, ++p) {
if (*p != ' ' && *p != '\t' && *p != '\r')
for (p = line->text, j = 0; *p && j < line->len; ++j, ++p) {
if (*p != ' ' && *p != '\t' && *p != '\r') {
return 0;
}
}
return 1;
}
size_t expand_tabs_into (const char *input_buffer, const size_t in_len,
const int tabstop, char **text, size_t **tabpos, size_t *tabpos_len)
size_t expand_tabs_into(const char *input_buffer, const size_t in_len,
const int tabstop, char **text, size_t **tabpos, size_t *tabpos_len)
/*
* Expand tab chars in input_buffer and store result in text.
*
@ -248,51 +257,56 @@ size_t expand_tabs_into (const char *input_buffer, const size_t in_len,
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
{
static char temp [LINE_MAX_BYTES*MAX_TABSTOP+1]; /* work string */
size_t ii; /* position in input string */
size_t io; /* position in work string */
size_t jp; /* tab expansion jump point */
size_t tabnum; /* number of tabs in input */
static char temp[LINE_MAX_BYTES * MAX_TABSTOP + 1]; /* work string */
size_t ii; /* position in input string */
size_t io; /* position in work string */
size_t jp; /* tab expansion jump point */
size_t tabnum; /* number of tabs in input */
*text = NULL;
*text = NULL;
for (ii=0, *tabpos_len=0; ii<in_len; ++ii) {
if (input_buffer[ii] == '\t')
(*tabpos_len)++;
}
if (opt.tabexp != 'k')
*tabpos_len = 0;
if (*tabpos_len > 0) {
*tabpos = (size_t *) calloc ((*tabpos_len) + 1, sizeof(size_t));
if (*tabpos == NULL) {
return 0; /* out of memory */
}
}
for (ii = 0, *tabpos_len = 0; ii < in_len; ++ii) {
if (input_buffer[ii] == '\t') {
(*tabpos_len)++;
}
}
if (opt.tabexp != 'k') {
*tabpos_len = 0;
}
if (*tabpos_len > 0) {
*tabpos = (size_t *) calloc((*tabpos_len) + 1, sizeof(size_t));
if (*tabpos == NULL) {
return 0; /* out of memory */
}
}
for (ii=0, io=0, tabnum=0; ii < in_len && ((int) io) < (LINE_MAX_BYTES*tabstop-1); ++ii) {
if (input_buffer[ii] == '\t') {
if (*tabpos_len > 0) {
(*tabpos)[tabnum++] = io;
}
for (jp=io+tabstop-(io%tabstop); io<jp; ++io)
temp[io] = ' ';
}
else {
temp[io] = input_buffer[ii];
++io;
}
}
temp[io] = '\0';
for (ii = 0, io = 0, tabnum = 0; ii < in_len && ((int) io) < (LINE_MAX_BYTES * tabstop - 1); ++ii) {
if (input_buffer[ii] == '\t') {
if (*tabpos_len > 0) {
(*tabpos)[tabnum++] = io;
}
for (jp = io + tabstop - (io % tabstop); io < jp; ++io) {
temp[io] = ' ';
}
}
else {
temp[io] = input_buffer[ii];
++io;
}
}
temp[io] = '\0';
*text = (char *) strdup (temp);
if (*text == NULL) return 0;
*text = (char *) strdup(temp);
if (*text == NULL) {
return 0;
}
return io;
return io;
}
void btrim (char *text, size_t *len)
void btrim(char *text, size_t *len)
/*
* Remove trailing whitespace from line.
*
@ -302,7 +316,7 @@ void btrim (char *text, size_t *len)
long idx = (long) (*len) - 1;
while (idx >= 0 && (text[idx] == '\n' || text[idx] == '\r'
|| text[idx] == '\t' || text[idx] == ' '))
|| text[idx] == '\t' || text[idx] == ' ')) /**/
{
text[idx--] = '\0';
}
@ -312,7 +326,7 @@ void btrim (char *text, size_t *len)
char *my_strnrstr (const char *s1, const char *s2, const size_t s2_len, int skip)
char *my_strnrstr(const char *s1, const char *s2, const size_t s2_len, int skip)
/*
* Return pointer to last occurrence of string s2 in string s1.
*
@ -330,24 +344,29 @@ char *my_strnrstr (const char *s1, const char *s2, const size_t s2_len, int skip
char *p;
int comp;
if (!s2 || *s2 == '\0')
if (!s2 || *s2 == '\0') {
return (char *) s1;
if (!s1 || *s1 == '\0')
}
if (!s1 || *s1 == '\0') {
return NULL;
if (skip < 0)
}
if (skip < 0) {
skip = 0;
}
p = strrchr (s1, s2[0]);
if (!p)
p = strrchr(s1, s2[0]);
if (!p) {
return NULL;
}
while (p >= s1) {
comp = strncmp (p, s2, s2_len);
comp = strncmp(p, s2, s2_len);
if (comp == 0) {
if (skip--)
if (skip--) {
--p;
else
} else {
return p;
}
}
else {
--p;
@ -359,7 +378,7 @@ char *my_strnrstr (const char *s1, const char *s2, const size_t s2_len, int skip
char *tabbify_indent (const size_t lineno, char *indentspc, const size_t indentspc_len)
char *tabbify_indent(const size_t lineno, char *indentspc, const size_t indentspc_len)
/*
* Checks if tab expansion mode is "keep", and if so, calculates a new
* indentation string based on the one given. The new string contains
@ -378,7 +397,7 @@ char *tabbify_indent (const size_t lineno, char *indentspc, const size_t indents
*/
{
size_t i;
char *result;
char *result;
size_t result_len;
if (opt.tabexp != 'k') {
@ -388,20 +407,20 @@ char *tabbify_indent (const size_t lineno, char *indentspc, const size_t indents
return NULL;
}
if (indentspc_len == 0) {
return (char *) strdup ("");
return (char *) strdup("");
}
result = (char *) malloc (indentspc_len + 1);
result = (char *) malloc(indentspc_len + 1);
if (result == NULL) {
perror (PROJECT);
perror(PROJECT);
return NULL;
}
memset (result, (int)' ', indentspc_len);
memset(result, (int) ' ', indentspc_len);
result[indentspc_len] = '\0';
result_len = indentspc_len;
for (i=0; i < input.lines[lineno].tabpos_len
&& input.lines[lineno].tabpos[i] < indentspc_len; ++i)
for (i = 0; i < input.lines[lineno].tabpos_len
&& input.lines[lineno].tabpos[i] < indentspc_len; ++i) /**/
{
size_t tpos = input.lines[lineno].tabpos[i];
size_t nspc = opt.tabstop - (tpos % opt.tabstop); /* no of spcs covered by tab */

View File

@ -5,12 +5,12 @@
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License, version 2, as published
* by the Free Software Foundation.
*
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
@ -27,30 +27,38 @@
#define TOOLS_H
#define BMAX(a,b) ((a)>(b)? (a):(b)) /* return the larger value */
#define BMAX(a, b) ((a)>(b)? (a):(b)) /* return the larger value */
#define BFREE(p) { /* free memory and clear pointer */ \
if (p) { \
free (p); \
(p) = NULL; \
} \
if (p) { \
free (p); \
(p) = NULL; \
} \
}
int yyerror (const char *fmt, ...);
void regerror (char *msg);
int empty_line (const line_t *line);
size_t expand_tabs_into (const char *input_buffer, const size_t in_len,
const int tabstop, char **text, size_t **tabpos, size_t *tabpos_len);
void btrim (char *text, size_t *len);
char* my_strnrstr (const char *s1, const char *s2, const size_t s2_len,
int skip);
int strisyes (const char *s);
int strisno (const char *s);
int yyerror(const char *fmt, ...);
void concat_strings (char *dst, int max_len, int count, ...);
void regerror(char *msg);
int empty_line(const line_t *line);
size_t expand_tabs_into(const char *input_buffer, const size_t in_len,
const int tabstop, char **text, size_t **tabpos, size_t *tabpos_len);
void btrim(char *text, size_t *len);
char *my_strnrstr(const char *s1, const char *s2, const size_t s2_len,
int skip);
int strisyes(const char *s);
int strisno(const char *s);
void concat_strings(char *dst, int max_len, int count, ...);
char *tabbify_indent(const size_t lineno, char *indentspc, const size_t indentspc_len);
char *tabbify_indent (const size_t lineno, char *indentspc, const size_t indentspc_len);
#endif