April 14, 2026

20-year bug, infinite loop of feels

Fixing a 20-year-old bug in Enlightenment E16

Gen‑Z coder saves a ‘90s desktop, sparks nostalgia wars

TLDR: A developer fixed a 20-year-old bug that froze the vintage E16 desktop when a long window title triggered a bad loop. The community split between misty-eyed nostalgia and good-natured snark about E16’s “lightweight” reputation, with a tiny code-editing nit noted but the fix widely celebrated.

A 20-year-old freeze bug in the 1997-era Enlightenment E16 window manager just got slain by Kamila Szewczyk, and the comment section immediately turned into a retro reunion and roast. Kamila found that opening one stubborn PDF would lock the whole desktop because a title‑shortening loop—meant to trim long window names—kept bouncing forever. The culprit? A fussy bit of math (Newton’s method) applied to text fitting that sent E16 into an infinite vibe check. She patched it, and the old beast breathed again.

Cue the community: veterans rolled in with war stories and tears of joy, like one user who was “muttering modelines” (ancient display settings) in their sleep. Others vowed to reinstall E16 just for the vibes. But not everyone came to hug it out—skeptics shot back that E16 “wasn’t lightweight back then,” reigniting the eternal “is it fast or just nostalgic?” debate. The juiciest drama cameo? A former coworker of E’s creator, Carsten “Raster” Haitzler, recalling so much banter he nearly built a personal “insult generator.”

Meanwhile, the peanut gallery caught a tiny editing slip in the code snippet—a loop header that didn’t match the final patch. Verdict from the crowd: minor typo, major win. A 2004-born dev rescuing a 1997 desktop? That’s the cross‑generational Linux rom-com we didn’t know we needed.

Key Points

  • A deterministic desktop freeze in Enlightenment E16 was triggered by opening a specific PDF in Atril.
  • gdb analysis showed the process looping around imlib2’s font cache calls from E16’s text rendering path.
  • The issue centered on TextstateTextFitMB in text.c, which truncates window titles with a middle ellipsis to fit a pixel limit.
  • Local variables showed a two-state oscillation, indicating an infinite loop rather than a deadlock.
  • The root cause traced to a faulty Newton’s method implementation dating back to 2006, which the author corrected.

Hottest takes

“muttering modelines in my sleep” — madaxe_again
“Certainly wasn’t considered lightweight back then :-)” — mrweasel
“a ‘zeruch insult generator’ just to streamline the verbal abuse” — zeruch
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.