Mercurial > projects > ldc
view dmd/macro.h @ 1126:899a2d90645b
Fix some issues with fawzi's patch.
- It now actually compiles:
- import stdc.stdio for string formatting functions)
- remove extra '{'
- Use snprintf() instead of sprintf().
- Use return value from snprintf instead of strlen().
- Don't print the filename in Exception.writeOut() if it has zero length and
the line number is 0
(It would previously only skip these if the filename was null, but not if it
was a different empty string)
- Ignore empty filename + line number 0 in FrameInfo.writeOut() as well.
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Wed, 18 Mar 2009 15:33:19 +0100 |
parents | c53b6e3fe49a |
children |
line wrap: on
line source
// Compiler implementation of the D programming language // Copyright (c) 1999-2006 by Digital Mars // All Rights Reserved // written by Walter Bright // http://www.digitalmars.com // License for redistribution is by either the Artistic License // in artistic.txt, or the GNU General Public License in gnu.txt. // See the included readme.txt for details. #ifndef DMD_MACRO_H #define DMD_MACRO_H 1 #include <stdio.h> #include <string.h> #include <time.h> #include <ctype.h> #include "root.h" class Macro { Macro *next; // next in list unsigned char *name; // macro name size_t namelen; // length of macro name unsigned char *text; // macro replacement text size_t textlen; // length of replacement text int inuse; // macro is in use (don't expand) Macro(unsigned char *name, size_t namelen, unsigned char *text, size_t textlen); Macro *search(unsigned char *name, size_t namelen); public: static Macro *define(Macro **ptable, unsigned char *name, size_t namelen, unsigned char *text, size_t textlen); void expand(OutBuffer *buf, unsigned start, unsigned *pend, unsigned char *arg, unsigned arglen); }; #endif