mirror of
https://github.com/netwide-assembler/nasm.git
synced 2025-04-12 18:40:23 +08:00
nasmlib: Introduce nasm_trim_spaces and nasm_opt_val helpers
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
This commit is contained in:
parent
28711d949a
commit
bb0745f432
35
nasmlib.c
35
nasmlib.c
@ -690,6 +690,41 @@ char *nasm_zap_spaces_rev(char *p)
|
||||
return p;
|
||||
}
|
||||
|
||||
/* zap leading and trailing spaces */
|
||||
char *nasm_trim_spaces(char *p)
|
||||
{
|
||||
p = nasm_zap_spaces_fwd(p);
|
||||
nasm_zap_spaces_fwd(nasm_skip_word(p));
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
/*
|
||||
* extract option and value from a string formatted as "opt = val"
|
||||
* and return pointer to the next string or NULL on empty string
|
||||
* passed or if nothing left for handling
|
||||
*/
|
||||
char *nasm_opt_val(char *p, char **opt, char **val)
|
||||
{
|
||||
char *q, *next;
|
||||
|
||||
p = nasm_skip_spaces(p);
|
||||
if (!p || (p && !*p))
|
||||
return NULL;
|
||||
|
||||
q = strchr(p, '=');
|
||||
if (q) {
|
||||
*q++ = '\0';
|
||||
next = nasm_skip_spaces(nasm_skip_word(nasm_skip_spaces(q)));
|
||||
} else
|
||||
next = nasm_skip_spaces(nasm_skip_word(nasm_skip_spaces(p)));
|
||||
|
||||
*opt = nasm_trim_spaces(p);
|
||||
*val = nasm_trim_spaces(q);
|
||||
|
||||
return next;
|
||||
}
|
||||
|
||||
/*
|
||||
* initialized data bytes length from opcode
|
||||
*/
|
||||
|
@ -393,6 +393,8 @@ char *nasm_skip_spaces(const char *p);
|
||||
char *nasm_skip_word(const char *p);
|
||||
char *nasm_zap_spaces_fwd(char *p);
|
||||
char *nasm_zap_spaces_rev(char *p);
|
||||
char *nasm_trim_spaces(char *p);
|
||||
char *nasm_opt_val(char *p, char **opt, char **val);
|
||||
|
||||
const char *prefix_name(int);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user