+ bclose(f);
+ break;
+ }
+ case 'n':
+ {
+ char *data[] = { "Nested", "Data", "As", "In", "Real", "Usage", };
+ struct fastbuf fb[ARRAY_SIZE(data)];
+ for (uint i=0;i<ARRAY_SIZE(data);i++)
+ fbbuf_init_read(&fb[i], data[i], strlen(data[i]), 0);
+
+ struct fastbuf sp;
+ fbbuf_init_read(&sp, " ", 1, 0);
+
+ struct fastbuf nl;
+ fbbuf_init_read(&nl, "\n", 1, 0);
+
+ struct fastbuf *f = fbmulti_create();
+ struct fastbuf *ff;
+
+ ff = fbmulti_create();
+ fbmulti_append(ff, &fb[0]);
+ fbmulti_append(ff, &sp);
+ fbmulti_append(ff, &fb[1]);
+ fbmulti_append(f, ff);
+ fbmulti_append(f, &nl);
+
+ ff = fbmulti_create();
+ fbmulti_append(ff, &fb[2]);
+ fbmulti_append(ff, &sp);
+ fbmulti_append(ff, &fb[3]);
+ fbmulti_append(f, ff);
+ fbmulti_append(f, &nl);
+
+ ff = fbmulti_create();
+ fbmulti_append(ff, &fb[4]);
+ fbmulti_append(ff, &sp);
+ fbmulti_append(ff, &fb[5]);
+ fbmulti_append(f, ff);
+ fbmulti_append(f, &nl);
+
+ char buffer[20];
+ while (bgets(f, buffer, 20))
+ puts(buffer);
+