mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
gpgscm: Track source locations in every kind of ports.
* tests/gpgscm/scheme-private.h (struct port): Move location information out of the union. * tests/gpgscm/scheme.c (mark): All ports need marking now. (gc): Likewise all ports on the load stack. (port_clear_location): Adapt accordingly. Also, add an empty function for !SHOW_ERROR_LINE. (port_increment_current_line): Likewise. (port_reset_current_line): Drop function in favor of... (port_init_location): ... this new function. (file_push): Simplify. (file_pop): Likewise. (port_rep_from_filename): Likewise. (port_rep_from_file): Likewise. (port_rep_from_string): Also initialize the location. (port_rep_from_scratch): Likewise. (port_close): Simplify and generalize. (skipspace): Likewise. (token): Likewise. (_Error_1): Generalize. (opexe_5): Likewise. (scheme_deinit): Simplify and generalize. (scheme_load_named_file): Likewise. (scheme_load_string): Also initialize the location. -- This change tracks the location of source code loaded from non-file ports that is used in error messages. It also simplifies the code quite a bit. Signed-off-by: Justus Winter <justus@g10code.com>
This commit is contained in:
parent
8a67dc4c43
commit
7cc57e2c63
2 changed files with 72 additions and 99 deletions
|
@ -27,10 +27,6 @@ typedef struct port {
|
|||
struct {
|
||||
FILE *file;
|
||||
int closeit;
|
||||
#if SHOW_ERROR_LINE
|
||||
pointer curr_line;
|
||||
pointer filename;
|
||||
#endif
|
||||
} stdio;
|
||||
struct {
|
||||
char *start;
|
||||
|
@ -38,6 +34,10 @@ typedef struct port {
|
|||
char *curr;
|
||||
} string;
|
||||
} rep;
|
||||
#if SHOW_ERROR_LINE
|
||||
pointer curr_line;
|
||||
pointer filename;
|
||||
#endif
|
||||
} port;
|
||||
|
||||
/* cell structure */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue