Commit Graph

35 Commits

Author SHA1 Message Date
Peace-Maker
cf617a4d20 Add string literal concatenation using ellipses "..." (bug 4261)
Backported the changes CompuPhase did to the compiler to support string
literal concatenation including all fixes in later commits from r30 on.
http://code.google.com/p/pawnscript/source/detail?r=30

Pawn uses ellipses "..." to concatenate so it looks like this:

#define PROJECT_AUTHOR "Greyscale"
#define PROJECT_COPYRIGHT "Copyright (C) 2010  " ... PROJECT_AUTHOR

This would result in PROJECT_COPYRIGHT being defined as
"Copyright (C) 2010  Greyscale"

While i've been at it, that stringizing a macro parameter feature was
ported too.
From the changelog for version 3.3.4026
(http://www.compuphase.com/pawn/pawnhistory.htm):

The macro substition processor now recognizes the "#" character for
"stringizing" a parameter. For example, if you have the definition
#define log(%1) #%1
Then the expression log(test) will result in "test".
Note that concatenation of literal strings requires an ellipsis in pawn
(which is different than C/C++). So to combine the parameter with
literal strings, use a syntax like:
#define log(%1) "logging: " ... #%1 ... "\n"
The stringize operator is only available in the replacement text of a
macro.

Doing
PrintToServer(log(hello));
would print
logging: hello\n
2014-05-27 13:32:59 +02:00
David Anderson
29ff05bd62 Fix compiler bug with multidimensional array variable release (bug 6100, r=fyren).
--HG--
extra : rebase_source : 3f3c366fd8c47268ecd0df5907b68d3c879a5e60
2014-05-09 23:17:14 -04:00
Scott Ehlert
b3d64d1121 Fix freeing non-heap object warning from GCC (r=ann). 2014-02-01 04:16:26 -06:00
David Anderson
f82224eba0 Move versioning to a static library to improve trivial build speed (bug 5997 part 9, r=ds). 2013-12-30 17:51:00 -05:00
David Anderson
58995fc829 Add an spcomp option to print #included files (bug 5997 part 4, r=ds). 2013-12-30 17:50:58 -05:00
Ryan Stecker
b749bbf42b Remove 'state' keyword from compiler (bug 4572, r=dvander). 2013-12-28 08:42:50 -05:00
Asher Baker
29ddb9f4d9 Fix spcomp compilation on OS X 10.9
Summary:
10.9's SDK changed strlcat and strlcmp to macros, which has broken lots of code. As they will always be available from the system (being BSD functions), just use the system ones there.

tempnam has also been deprecated, refactoring spcomp to use it safely is quite a bit of work, and it's not critical, so just hacking around it with mkstemp.

Test Plan: Compiled spcomp.

Reviewers: dvander

Differential Revision: https://phabricator.alliedmods.net/D3

--HG--
extra : rebase_source : 535b88f815727b186fa6a141036599651a60e334
2013-12-02 13:08:27 +00:00
David Anderson
a4b7ad0d42 Fixed memory corruption when parsing natives. (bug 5840, r=fyren) 2013-08-12 01:33:04 +01:00
Kyle Sanderson
29bc273e58 Removed -Wno-parentheses from posix build and fixed warnings (bug 5745, r=psychonic). 2013-07-18 15:50:57 -04:00
Asher Baker
d5ec523584 Support emscripten for compiling spcomp (r=dvander). 2013-04-05 07:03:43 +01:00
Asher Baker
bf76be5dfa Overhauled versioning information (bug 5453, r=dvander). 2012-08-26 01:33:54 +01:00
Nicholas Hastings
4d07acd384 Backed out changeset: 294fded6a0d0 (bug 4902, bug 5068). 2011-10-28 11:23:02 -04:00
Fyren
4d52fe0490 Revert 3336, try fix #2 (bug 4852, r=dvander) 2011-07-09 20:47:43 -07:00
David Anderson
bb48a16466 Fix compiler creating bogus arrays when missing a dimension (bug 4902, r=fyren). 2011-07-06 17:56:40 -04:00
David Anderson
a02ff01d84 Prevent declaring arrays that the compiler is too buggy to handle (bug 4977, r=fyren). 2011-07-06 17:56:03 -04:00
David Anderson
66d27d6ac5 Fix return omission with else-after-return (bug 4852, r=fyren). 2011-07-06 17:55:14 -04:00
Scott Ehlert
939bc00b2b Added detection for clang compiler and fixed various warnings triggered by it (bug 4878, r=dvander). 2011-04-23 21:53:53 -05:00
David Anderson
fdd1a9afef Use hash table for global name lookups (bug 4496, r=fyren). 2010-07-11 17:32:46 -07:00
David Anderson
7054b92a14 Fixed bogus assert about name lengths (bug 4486, r=fyren). 2010-07-02 18:12:31 -07:00
Fyren
e332f4e12b Possible dynamic array dimension fix (bug 4428, r=dvander) 2010-06-19 15:15:23 -07:00
David Anderson
271b52158e Mac build fixes (bug 4392, r=me). 2010-05-11 01:46:55 -07:00
Fyren
c78e89c3c1 Compiler confused |any| tag with |String| on array arguments. 2010-02-08 20:00:06 -08:00
David Anderson
d3f0a14867 Imported support for new build system. 2009-08-30 00:21:42 -07:00
David Anderson
752bd78de5 Fixed compiler asserting when returning a string literal (bug 3836, r=fyren). 2009-05-30 20:03:56 -04:00
David Anderson
c4b17855e5 Fixed compiler erroring when tagging functions for string return (bug 3837, r=fyren). 2009-05-30 20:03:01 -04:00
Matt Woodrow
7710a1fdb0 Merge from 1.2 branch 2009-05-11 11:45:08 +12:00
David Anderson
bf8c57c669 Fixed compiler choosing whether to emit stradjust.pri on dynamic arrays based on uninitialized memory (bug 3810, r=fyren,pred, a12=blocking). 2009-05-09 09:21:14 -04:00
Fyren
f6bb6037f3 Allow spaces in compiler command line options (bug 3729, r=dvander) 2009-03-12 18:37:04 -07:00
David Anderson
a838276ec2 Changed functag syntax so public keyword is in the normal place. The old style is still allowed. 2008-09-21 14:56:38 -07:00
David Anderson
8126aa6bb8 using 'goto' is now an error
--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%402412
2008-07-12 22:28:10 +00:00
David Anderson
e618900688 new macros actually work now
--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%402019
2008-04-10 05:21:27 +00:00
David Anderson
430a860927 added amb1558 - __BINARY_PATH__ and __BINARY_FILE__
--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%402015
2008-04-10 00:10:45 +00:00
David Anderson
13e8cf9ed8 reverted compiler change that didn't work out so well
--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%402011
2008-04-09 05:59:21 +00:00
David Anderson
b455ac4f4e merged changes back from 1.0.1
--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%401992
2008-04-06 06:56:45 +00:00
Scott Ehlert
251cced1f8 Spring Cleaning, Part Ichi (1)
Various minor things done to project files
Updated sample extension project file and updated makefile to the new unified version (more changes likely on the way)
Updated regex project file and makefile

--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%401971
2008-03-30 07:00:22 +00:00