Real Vim ninjas count every keystroke - do you?

Pick a challenge, fire up Vim, and show us what you got.

Changelog, Rules & FAQ, updates: @vimgolf, RSS.

Your VimGolf key: please sign in

$ gem install vimgolf
$ vimgolf setup
$ vimgolf put 4d1a6ed2b8cb3409320000c9

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 by @lopossumi:

Unlock 3 remaining solutions by signing in and submitting your own entry
Created by: @wolever

187 active golfers, 640 entries

Solutions by @lopossumi:
36
#110 - Mikko Loponen / @lopossumi

11/08/2012 at 05:34PM

45
#>152 - Mikko Loponen / @lopossumi

11/08/2012 at 05:31PM

48
#>163 - Mikko Loponen / @lopossumi

11/08/2012 at 05:28PM