162306a36Sopenharmony_ci#ifndef SRCCODE_H 262306a36Sopenharmony_ci#define SRCCODE_H 1 362306a36Sopenharmony_ci 462306a36Sopenharmony_cistruct srccode_state { 562306a36Sopenharmony_ci char *srcfile; 662306a36Sopenharmony_ci unsigned line; 762306a36Sopenharmony_ci}; 862306a36Sopenharmony_ci 962306a36Sopenharmony_cistatic inline void srccode_state_init(struct srccode_state *state) 1062306a36Sopenharmony_ci{ 1162306a36Sopenharmony_ci state->srcfile = NULL; 1262306a36Sopenharmony_ci state->line = 0; 1362306a36Sopenharmony_ci} 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_civoid srccode_state_free(struct srccode_state *state); 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci/* Result is not 0 terminated */ 1862306a36Sopenharmony_cichar *find_sourceline(char *fn, unsigned line, int *lenp); 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci#endif 21