aboutsummaryrefslogtreecommitdiffstats
path: root/debug.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2013-09-24 16:39:32 +0300
committerArnold D. Robbins <arnold@skeeve.com>2013-09-24 16:39:32 +0300
commit7234d4a6c1ef8763ab6ac25619f8a225260d60b8 (patch)
tree86f67ae6ab3aef4e8837afb2acd3a9ab0fe99c84 /debug.c
parent8aa14c5f3cf78f90b589785a9ffe5f7f02050b37 (diff)
parent08e8087fc3b1b9839e464ee436e8b24a45b024aa (diff)
downloadegawk-7234d4a6c1ef8763ab6ac25619f8a225260d60b8.tar.gz
egawk-7234d4a6c1ef8763ab6ac25619f8a225260d60b8.tar.bz2
egawk-7234d4a6c1ef8763ab6ac25619f8a225260d60b8.zip
Merge branch 'gawk-4.1-stable'
Diffstat (limited to 'debug.c')
-rw-r--r--debug.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/debug.c b/debug.c
index 949ebb49..357ce725 100644
--- a/debug.c
+++ b/debug.c
@@ -2068,12 +2068,18 @@ find_rule(char *src, long lineno)
{
INSTRUCTION *rp;
- assert(lineno > 0);
- for (rp = rule_list->nexti; rp != NULL; rp = rp->nexti) {
- if ((rp - 1)->source_file == src
- && lineno >= (rp + 1)->first_line
- && lineno <= (rp + 1)->last_line)
- return (rp - 1);
+ if (lineno == 0) {
+ for (rp = rule_list->nexti; rp != NULL; rp = rp->nexti) {
+ if ((rp - 1)->source_file == src && (rp - 1)->source_line > 0)
+ return (rp - 1);
+ }
+ } else {
+ for (rp = rule_list->nexti; rp != NULL; rp = rp->nexti) {
+ if ((rp - 1)->source_file == src
+ && lineno >= (rp + 1)->first_line
+ && lineno <= (rp + 1)->last_line)
+ return (rp - 1);
+ }
}
return NULL;
}