document a nice technique to exit from a block in case of errors.
authorLuigi Rizzo <rizzo@icir.org>
Sat, 8 Dec 2007 17:58:08 +0000 (17:58 +0000)
committerLuigi Rizzo <rizzo@icir.org>
Sat, 8 Dec 2007 17:58:08 +0000 (17:58 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@91951 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/config.c

index ef65c8e..1f29ee1 100644 (file)
@@ -1153,6 +1153,11 @@ static struct ast_config *config_text_file_load(const char *database, const char
                        for (i=0; i<globbuf.gl_pathc; i++) {
                                ast_copy_string(fn, globbuf.gl_pathv[i], sizeof(fn));
 #endif
                        for (i=0; i<globbuf.gl_pathc; i++) {
                                ast_copy_string(fn, globbuf.gl_pathv[i], sizeof(fn));
 #endif
+       /*
+        * The following is not a loop, but just a convenient way to define a block
+        * (using do { } while(0) ), and be able to exit from it with 'continue'
+        * or 'break' in case of errors. Nice trick.
+        */
        do {
                if (stat(fn, &statbuf))
                        continue;
        do {
                if (stat(fn, &statbuf))
                        continue;