Jump to content
  • Advertisement


Sign in to follow this  
  • entries
  • comments
  • views

Towers of Hanoi

Sign in to follow this  
Will F


After a brief discussion about the portability of #pragma on the gamedev irc channel I did some research and discovered the following code in gcc. Here's the relevant part:

#if 0
/* This was a fun hack, but #pragma seems to start to be useful.
By failing to recognize it, we pass it through unchanged to cc1. */

/* The behavior of the #pragma directive is implementation defined.
this implementation defines it as follows. */

static int
do_pragma ()
close (0);
if (open ("/dev/tty", O_RDONLY, 0666) != 0)
goto nope;
close (1);
if (open ("/dev/tty", O_WRONLY, 0666) != 1)
goto nope;
execl ("/usr/games/hack", "#pragma", 0);
execl ("/usr/games/rogue", "#pragma", 0);
execl ("/usr/new/emacs", "-f", "hanoi", "9", "-kill", 0);
execl ("/usr/local/emacs", "-f", "hanoi", "9", "-kill", 0);
fatal ("You are in a maze of twisty compiler features, all different");

Apparently really old versions of gcc did something rather unexpected when it ran into a #pragma. While this makes me laugh, it's really inappropriate that a compiler would attempt to open a Towers of Hannoi game in emacs.

And in related madness, since i'm showing this code, i'm fairly certain I legally have to include the following message
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.

meh, write the FSF - i'm too lazy to also distribute the full text of the GPL along with this code [wink]
Sign in to follow this  


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!