Add fold markers to a .c file
Fold markers can make it easier to navigate source code. Add them to this .c file.
Start file
#include <string.h> #include <stdio.h> #include <stdlib.h> #include <assert.h> void copy(char *to, char *from, size_t count) { register n=(count+7)/8; switch(count%8){ case 0: do{ *to = *from++; case 7: *to = *from++; case 6: *to = *from++; case 5: *to = *from++; case 4: *to = *from++; case 3: *to = *from++; case 2: *to = *from++; case 1: *to = *from++; }while(--n>0); } } int main() { char *input = malloc(sizeof(char) * 1024); assert(input); char *output = malloc(sizeof(char) * 1024); assert(output); copy(output, input, sizeof(char) * 1024); return 0; }
End file
#include <string.h>/*{{{*/ #include <stdio.h> #include <stdlib.h> #include <assert.h> /*}}}*/ void copy(char *to, char *from, size_t count) {/*{{{*/ register n=(count+7)/8; switch(count%8){ case 0: do{ *to = *from++; case 7: *to = *from++; case 6: *to = *from++; case 5: *to = *from++; case 4: *to = *from++; case 3: *to = *from++; case 2: *to = *from++; case 1: *to = *from++; }while(--n>0); } }/*}}}*/ int main() {/*{{{*/ char *input = malloc(sizeof(char) * 1024); assert(input); char *output = malloc(sizeof(char) * 1024); assert(output); copy(output, input, sizeof(char) * 1024); return 0; }/*}}}*/
View Diff
1c1 < #include <string.h> --- > #include <string.h>/*{{{*/ 4a5 > /*}}}*/ 6c7 < void copy(char *to, char *from, size_t count) { --- > void copy(char *to, char *from, size_t count) {/*{{{*/ 19c20 < } --- > }/*}}}*/ 21c22 < int main() { --- > int main() {/*{{{*/ 28c29 < } --- > }/*}}}*/
Solutions
The best way to learn is to practice. Below, you will find some of the solutions other golfers have entered. To unlock higher ranked solutions, submit your own entry which does as well or better than the solutions you can currently see - climb the ladder!
Check out these helpful resources to improve your Vim skills... Game on.
Unlock 181 remaining solutions by signing in and submitting your own entry