Sólo para Windows, dicho y no FOSS pero "cualquier dirección ..."
Nuestra DMS Software Reengineering Toolkit" con sus C Front End puede aplicar transformaciones a código fuente en C. DMS puede configurarse para realizar transformaciones personalizadas y confiables transformaciones, aunque la configuración no es tan fácil como escribir simplemente un comando como "refactor frazzle by doobaz".
Uno de los principales escollos sigue siendo el preprocesador. DMS puede transformar código que tiene directivas de preprocesador en lugares típicos (alrededor de instrucciones, expresiones, encabezados de bucles if/for/while, declaraciones, etc.) pero otros "condicionales no estructurados" le dan problemas. Puede ejecutar DMS expandiendo las directivas de preprocesador o, lo que es más importante, ampliando las que le dan problemas, pero a la mayoría de las personas no les gusta porque prefieren mantener sus directivas de preprocesador. Entonces no es perfecto.
[Otra respuesta sugirió Concinelle, que se ve bastante bien desde mi punto de vista. Hasta donde yo sé, no maneja en absoluto las directivas de preprocesador; Podría estar equivocado y podría manejar algunos casos como lo hace DMS, pero estoy seguro de que no puede manejar todos los casos].
No desea considerar enrollar el suyo. Crear una herramienta de transformación/refactorización es mucho más difícil de lo que supondría nunca haberlo probado. Necesita analizadores completos y precisos para el dialecto (C) de interés y simplemente es bastante difícil hacerlo bien. Necesita un preprocesador, tablas de símbolos, análisis de flujo, transformación, maquinaria de regeneración de código, ... esto requiere años de esfuerzo para construir y hacerlo bien. Confía en mí, he estado allí, hecho eso.
¿Se opone a emacs también? –
Sí, elegiría 'vim' sobre' emacs' ... pero los odio a los dos con pasión. Soy el único administrador de sistemas en el trabajo que dice "ninguno", cuando me preguntan cuál prefiero. Yo uso 'nano' en los servidores, y Komodo Edit en mi máquina local. Ha sido catártico, sin tocar 'vim' nuevamente. – TechZilla
Refactorización de código para C? Coccinelle: http: //coccinelle.lip6.fr/ – ninjalj