Часть Emacs на C переносима на C99 или новее: более поздние возможности C, такие как ‘<stdckdint.h>’ и ‘[[noreturn]]’, используются не без проверки, обычно во время конфигурации, и процедура сборки Emacs предоставляет замену реализации при необходимости. Некоторые более поздние возможности, такие как анонимные структуры и объединения, слишком сложны для эмуляции, поэтому они полностью избегаются.
В какой-то момент в будущем базовый диалект C, несомненно, изменится на что-то более позднее, чем C99.