From 182f5748ef86df48710a58e48567fee61b822e6e Mon Sep 17 00:00:00 2001 From: vcrhonek Date: Thu, 24 Jul 2014 17:45:18 +0200 Subject: [PATCH 4/8] while loop counting Fix tcsh scripts with multiple case statement with end keywords break with error. TODO: This patch reverts upstream commit a973723e from 2004-05-13. We should make sure that this is going to be fixed properly upstream. Resolves: #253247 original dist-git commit: 1bcd8ea591286664483d0aea2601a8729eb6b81f --- sh.func.c | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/sh.func.c b/sh.func.c index 3e4d576..6afdd01 100644 --- a/sh.func.c +++ b/sh.func.c @@ -754,8 +754,6 @@ search(int type, int level, Char *goal) { struct Strbuf word = Strbuf_INIT; Char *cp; - struct whyle *wp; - int wlevel = 0; struct wordent *histent = NULL, *ohistent = NULL; Stype = type; @@ -821,24 +819,13 @@ search(int type, int level, Char *goal) case TC_FOREACH: case TC_WHILE: - wlevel++; if (type == TC_BREAK) level++; break; case TC_END: - if (type == TC_BRKSW) { - if (wlevel == 0) { - wp = whyles; - if (wp) { - whyles = wp->w_next; - wpfree(wp); - } - } - } if (type == TC_BREAK) level--; - wlevel--; break; case TC_SWITCH: -- 1.9.3