NAME
string_get_real_line - Reads a line from a string ignoring blanks and comments
SYNOPSIS
#include "l/l_io.h"
Example compile flags (system dependent):
-DLINUX_X86_64 -DLINUX_X86_64_OPTERON -DGNU_COMPILER
-I/home/kobus/include
-L/home/kobus/misc/load/linux_x86_64_opteron -L/usr/lib/x86_64-linux-gnu
-lKJB -lfftw3 -lgsl -lgslcblas -ljpeg -lSVM -lstdc++ -lpthread -lSLATEC -lg2c -lacml -lacml_mv -lblas -lg2c -lncursesw
long string_get_real_line
(
const char **buff_ptr,
char *line,
size_t max_len
);
DESCRIPTION
This routine is analogous to get_real_line() except that the "stream" is
string in memory that is cut up into lines on successive calls until a null
terminator is reached. Unlike get_real_line(), there no concept of soft EOF.
More specifically, the line is extracted from the string
starting at the postion *buff_ptr which is set to the updated location beyond
what has been parsed.
RETURNS
If there are no more characters to be read, then EOF is returned. If the
buffer is not large enough, SET_BUFFER_OVERFLOW_BUG() is called, and
TRUNCATED is returned. Otherwise NO_ERROR is returned.
MACROS
BUFF_STRING_GET_REAL_LINE(const char**, char line[])
The max_len parameter is set to sizeof(line) with the appropriate cast.
Using sizeof to set the buffer size is recomended where applicable, as
the code will not be broken if the buffer size changes. HOWEVER, neither
this method, nor the macro, is applicable if line is NOT a character
array. If line is declared by "char* line", then the size of line is the
number of bytes in a character pointer (usually 4), which is NOT what is
normally intended. You have been WARNED!
DISCLAIMER
This software is not adequatedly tested. It is recomended that
results are checked independantly where appropriate.
AUTHOR
Kobus Barnard
DOCUMENTER
Kobus Barnard
SEE ALSO
set_program_prompt
,
kjb_query
,
print_blanks
,
rep_print
,
count_real_lines
,
count_data_lines_until_next_header
,
count_tokens_in_file
,
get_real_line
,
string_count_real_lines
,
get_command_text
,
add_line_to_input_stream
,
read_int_from_file
,
read_dbl_from_file
,
push_no_overwrite
,
pop_no_overwrite
,
set_no_overwrite
,
get_no_overwrite