Необходимо заменить (sed, awk, perl,..) «long», но игнорируя комментарии, строки ("...") и т.п.
/*
(...) long comment (...)
*/
// not so long comment
long l = 0;
/*
(...) long comment (...)
*/
// not so long comment
printf("long message");
При портировании на си понадобилось поменять тип данных с long на, скажем, int32_t.
Регулярка для комментариев выглядит понятно:
(\/\*([\s\S]*?)\*\/)|(\/\/(.*))
s/?!(\/\*([\s\S]*?)\*\/)|(\/\/(.*))long/int32_t/g