#include <string.h>
#include "my_assert.h"
-
-static int my_isblank(char c)
-{
- return c == '\t' || c == ' ' || c == '\r' || c == '\n';
-}
-
-static char *sskip(char *s)
-{
- while (my_isblank(*s))
- s++;
-
- return s;
-}
-
-static char *next_word(char *w, size_t wsize, char *s)
-{
- size_t i;
-
- s = sskip(s);
-
- for (i = 0; i < wsize - 1; i++) {
- if (*s == 0 || my_isblank(s[i]))
- break;
- w[i] = s[i];
- }
- w[i] = 0;
-
- if (*s != 0 && !my_isblank(s[i]))
- printf("warning: '%s' truncated\n", w);
-
- return s + i;
-}
+#include "my_str.h"
struct sl_item {
char *name;
char word4[256];
char word5[256];
char word6[256];
+ char func[256];
char *p;
int i;
p = next_word(word2, sizeof(word2), p);
if (IS_OR2(word2, "proc", "endp")) {
+ if (IS(word2, "proc"))
+ strcpy(func, word);
+ else
+ func[0] = 0;
+
ssym.name = word;
sym = bsearch(&ssym, symlist, symlist_cnt,
sizeof(symlist[0]), cmp_sym);
ssym.name = word2;
sym = bsearch(&ssym, symlist, symlist_cnt,
sizeof(symlist[0]), cmp_sym);
- if (sym != NULL && sym->callsites) {
+ if (sym != NULL
+ && (sym->callsites || IS(word2, func)))
+ {
fprintf(fout, "\t\t%s\t%s%s", word,
sym_use(sym), p);
continue;
ssym.name = word3;
sym = bsearch(&ssym, symlist, symlist_cnt,
sizeof(symlist[0]), cmp_sym);
- if (sym != NULL && sym->callsites) {
+ if (sym != NULL
+ && (sym->callsites || IS(word3, func)))
+ {
fprintf(fout, "\t\t%s %s %s%s",
word, word2, sym_use(sym), p);
continue;