diff --git a/sourcepawn/compiler/sc.h b/sourcepawn/compiler/sc.h index c479e5bf..5f3cef99 100644 --- a/sourcepawn/compiler/sc.h +++ b/sourcepawn/compiler/sc.h @@ -277,6 +277,8 @@ typedef struct s_stringpair { char *first; char *second; int matchlength; + char flags; + char *documentation; } stringpair; /* macros for code generation */ diff --git a/sourcepawn/compiler/sc5.scp b/sourcepawn/compiler/sc5.scp index 96de07fc..62bd2d9d 100644 --- a/sourcepawn/compiler/sc5.scp +++ b/sourcepawn/compiler/sc5.scp @@ -26,14 +26,14 @@ SC_FUNC int strexpand(char *dest, unsigned char *source, int maxlen, unsigned ch #define SCPACK_TABLE errstr_table /*-*SCPACK start of pair table, do not change or remove this line */ unsigned char errstr_table[][2] = { - {101,32}, {111,110}, {116,32}, {105,110}, {97,114}, {116,105}, {115,32}, {100,32}, {101,114}, {37,115}, {133,129}, {101,110}, {34,137}, {140,34}, {97,108}, {117,110}, - {114,101}, {110,111}, {97,116}, {115,105}, {121,32}, {97,110}, {111,114}, {109,98}, {115,116}, {32,141}, {100,101}, {41,10}, {109,139}, {145,130}, {101,135}, {138,32}, - {98,108}, {111,108}, {143,99}, {102,162}, {114,97}, {118,142}, {115,121}, {166,151}, {167,161}, {97,32}, {117,115}, {103,32}, {115,147}, {97,160}, {136,32}, {150,32}, - {132,164}, {99,104}, {103,117}, {105,135}, {163,159}, {178,156}, {165,179}, {132,181}, {111,102}, {116,104}, {101,120}, {131,182}, {101,134}, {105,134}, {168,153}, {154,102}, - {101,100}, {118,132}, {184,32}, {105,173}, {193,195}, {116,111}, {176,148}, {109,97}, {99,129}, {101,10}, {115,10}, {112,144}, {116,97}, {183,130}, {98,128}, {152,146}, - {44,32}, {40,190}, {132,97}, {170,130}, {191,131}, {153,10}, {109,146}, {209,155}, {109,211}, {104,97}, {196,128}, {34,32}, {129,32}, {142,32}, {105,99}, {117,108}, - {99,111}, {147,122}, {110,32}, {100,105}, {101,108}, {108,111}, {111,112}, {116,136}, {200,152}, {131,32}, {149,32}, {131,171}, {214,177}, {58,213}, {109,101}, {102,105}, - {100,111}, {97,115}, {108,128}, {118,128}, {230,136}, {232,149}, {204,171}, {203,172}, {216,206}, {119,105}, {109,112}, {110,117}, {186,247}, {163,138}, {251,151} + {101,32}, {111,110}, {116,32}, {105,110}, {97,114}, {115,32}, {116,105}, {100,32}, {101,114}, {37,115}, {101,110}, {134,129}, {34,137}, {140,34}, {97,108}, {117,110}, + {114,101}, {110,111}, {97,116}, {115,105}, {121,32}, {97,110}, {111,114}, {109,98}, {115,116}, {32,141}, {100,101}, {41,10}, {109,138}, {145,130}, {101,135}, {139,32}, + {98,108}, {111,108}, {114,97}, {143,99}, {118,142}, {102,163}, {115,121}, {166,151}, {167,161}, {97,32}, {117,115}, {103,32}, {115,147}, {132,162}, {97,160}, {136,32}, + {150,32}, {99,104}, {103,117}, {105,135}, {178,156}, {164,179}, {132,180}, {111,102}, {116,104}, {101,120}, {165,159}, {131,181}, {101,100}, {101,133}, {105,133}, {168,153}, + {154,102}, {118,132}, {183,32}, {105,174}, {193,195}, {116,111}, {173,148}, {109,97}, {99,129}, {101,10}, {115,10}, {112,144}, {116,97}, {182,130}, {98,128}, {152,146}, + {44,32}, {132,97}, {192,131}, {170,130}, {153,10}, {109,146}, {191,155}, {109,211}, {40,214}, {104,97}, {196,128}, {34,32}, {129,32}, {142,32}, {105,99}, {117,108}, + {99,111}, {147,122}, {110,32}, {100,105}, {101,108}, {108,111}, {111,112}, {116,136}, {200,152}, {131,32}, {149,32}, {131,171}, {213,177}, {58,212}, {109,101}, {102,105}, + {100,111}, {97,115}, {108,128}, {118,128}, {230,136}, {232,149}, {204,171}, {203,172}, {215,206}, {119,105}, {109,112}, {110,117}, {185,247}, {165,139}, {251,151} }; /*-*SCPACK end of pair table, do not change or remove this line */ @@ -140,106 +140,106 @@ static char *errmsg[] = { /*099*/ "member \"%s\" appears more than once in struct \"%s\"\n", /*100*/ "function prototypes do not match\n" #else - "\272pect\236\305k\213:\231\320bu\202fo\217\207\215\012", - "\201l\224\251s\203g\362\317e\234\202(\257\374\201) c\352f\241\345w ea\261 \042c\361e\042\012", - "\232cl\322\237\302\251\345c\335\332\330appe\204 \351\251\340\372o\217\207\240ock\012", - "\375\231 \275\235i\372le\234t\300\012", - "\264\307\224\235\331\363\267t\312", - "\370a\254gn\236\305 \352\260y\012", - "\364\222\257c\225\235\316\220\324\300\012", + "\271pect\236\305k\212:\231\320bu\202fo\217\207\215\012", + "\201l\224\251s\203g\362\317e\234\202(\260\374\201) c\352f\241\345w ea\261 \042c\361e\042\012", + "\232cl\321\237\302\251\345c\335\332\327appe\204 \351\251\340\372o\217\207\240ock\012", + "\375\231 \276\235i\372le\234t\274\012", + "\272\307\224\235\331\363\266t\312", + "\370a\254gn\236\305 \352\255y\012", + "\364\222\260c\225\235\316\220\322\274\012", "\370\251\365\202\374\201; \361sum\236z\210o\012", - "\273\306\341\200(nega\205ve\320z\210o \257ou\202\302bo\217ds\233", - "\273\264\257\232cl\322\212\012", + "\273\306\341\200(nega\206ve\320z\210o \260ou\202\302bo\217ds\233", + "\273\272\260\232cl\321\213\012", "\273out\223d\200\375\312", - "\273\264c\216l\320\235\251\266add\220s\312", - "\221 \213tr\224po\203\202(\221 pu\240\336 \375s\233", + "\273\272c\216l\320\235\251\265add\220s\312", + "\221 \212tr\224po\203\202(\221 pu\240\336 \375s\233", "\273\317e\234t; \235\351s\371t\261\012", - "\042\277a\337t\333c\361\200\370\271\200l\361\202c\361\200\351s\371t\261 \317e\234t\012", - "m\337\205p\362\277a\337t\206\351\042s\371t\261\042\012", - "\217\324\236\276\012", - "\203i\205\216iza\237d\222\251\272ce\300\206\232cl\204\236\341\311", + "\042\300a\337t\333c\361\200\370\270\200l\361\202c\361\200\351s\371t\261 \317e\234t\012", + "m\337\206p\362\300a\337t\205\351\042s\371t\261\042\012", + "\217\322\236\277\012", + "\203i\206\216iza\237d\222\251\271ce\274\205\232cl\204\236\341\311", "\235\251lab\344\355", "\273\250 nam\200\215\012", - "\250 \216\220ad\224\324\300\355", - "\370l\245u\200(n\201-\365t\233", + "\250 \216\220ad\224\322\274\355", + "\370l\244u\200(n\201-\365t\233", "\306a\254gn\234\202\370\223\372\362a\254gn\234t\012", - "\042b\220ak\333\257\042\310t\203ue\333\275ou\202\302\310t\272t\012", - "\264head\353\343ff\210\206from pro\305typ\311", + "\042b\220ak\333\260\042\310t\203ue\333\276ou\202\302\310t\271t\012", + "\272head\353\343ff\210\205from pro\305typ\311", "\221 \354\353\042#if...\042\012", - "\273\261\322ct\256\365t\012", - "\273subscrip\202(\235\352\306\257\305o m\225\224subscripts)\355", + "\273\261\321ct\257\365t\012", + "\273subscrip\202(\235\352\306\260\305o m\225\224subscripts)\355", "\273\374\201\320\361sum\236z\210o\012", - "\340\372o\217\207\317e\234\202\235c\345s\236a\202\271\200\213\207\302\357\362(\230\204t\236a\202l\203\200%d\233", - "\217k\221w\342\343\220c\205v\311", - "\306\203\232x ou\202\302bo\217d\206(\332\215\233", + "\340\372o\217\207\317e\234\202\235c\345s\236a\202\270\200\212\207\302\357\362(\230\204t\236a\202l\203\200%d\233", + "\217k\221w\342\343\220c\206v\311", + "\306\203\232x ou\202\302bo\217d\205(\332\215\233", "\306\370\203\232x\236(\332\215\233", - "\315\360\274\235\331\363\251\277a\337\202\245u\200(\315%d\233", + "\315\360\275\235\331\363\251\300a\337\202\244u\200(\315%d\233", "\315typ\200mis\354 (\315%d\233", "e\372t\224\317e\234t\012", "\273\230r\353(po\254\240\224n\201-\347m\203\222\236\230r\203g\233", - "\272t\244 \261\322c\347\206\334l\203\311", - "\365\202\250 \331\206\221 \341\311", - "dupl\336\222\200\042c\361e\333lab\344 (\245u\200%d\233", - "\273\344lip\223s\320\306\341\200\275\235k\221wn\012", - "\273\340\227\203a\237\302cl\361\206speci\357\210\312", - "\261\322ct\256\365\202\272ce\300\206r\225g\200f\257pack\236\230r\203g\012", - "po\223\212\335p\322\356\347\206\330\313c\300\200\216l nam\236p\322\356\347\312", - "\305o m\225\224\264\267t\312", + "\271t\242 \261\321c\347\205\334l\203\311", + "\365\202\250 \331\205\221 \341\311", + "dupl\336\222\200\042c\361e\333lab\344 (\244u\200%d\233", + "\273\344lip\223s\320\306\341\200\276\235k\221wn\012", + "\273\340\227\203a\237\302cl\361\205speci\357\210\312", + "\261\321ct\257\365\202\271ce\274\205r\225g\200f\260pack\236\230r\203g\012", + "po\223\213\335p\321\356\347\205\327\313c\274\200\216l nam\236p\321\356\347\312", + "\305o m\225\224\272\266t\312", "\217k\221w\342\306\341\200(\332\215\233", - "\306\341\274\360 \235\354\320\257\232\230\203a\237\306\275\305o sm\216l\012", - "\306(\206\360 \235\354\012", - "\273l\203\200\310t\203ua\212\012", + "\306\341\275\360 \235\354\320\260\232\230\203a\237\306\276\305o sm\216l\012", + "\306(\205\360 \235\354\012", + "\273l\203\200\310t\203ua\213\012", "\273r\225g\311", - "\273subscript\320\252\200\042[ ]\333\364\222\226\206\334\307j\257\343\234\223\201\312", - "m\337\205-\343\234\223\201\335\260y\206\370f\337l\224\203i\205\216iz\300\012", - "\272ce\300\353\307ximum \376\256\302\343\234\223\201\312", - "\217\354\236c\345s\353b\244c\200(\042}\042\233", - "\230\204\202\302\264bod\224\371\271ou\202\264head\210\012", - "\260ys\320\345c\335\304\274\225\207\264\267t\206c\225\235\316pu\240\336 (\332\215\233", - "\217f\203ish\236\374\334bef\226\200\340\372il\256\343\220c\205v\311", - "dupl\336\222\200\267t; sam\200\315\275p\361s\236tw\336\311", - "\264\315\307\224\235\331\363\251\277a\337\202\245u\200(\332\215\233", - "m\337\205p\362\042#\344se\333\343\220c\205v\274betwe\213 \042#if ... #\213\343f\042\012", - "\042#\344seif\333\343\220c\205\363f\241\345w\206\352\042#\344se\333\343\220c\205v\311", - "\376\256\302\364\225d\206\360\274\235\357\202\271\200\364\222\226\012", - "\264\220s\337\202\366\302\364\222\226\231 \370\215\012", - "c\225\235\261\225g\200\313\324\236\364\222\226\312", - "\264\315\307\224\201l\224\331\363\251s\203g\362\366(\315%d\233", - "\264\315\307\224\235\316\251\220f\210\213c\200\315\257\352\306(\315\215\233", - "\332c\225\235\316bo\271 \251\220f\210\213c\200\225\207\352\306(\332\215\233", - "\273\244\212\335\376\256\313ci\223\334\351#p\244g\307\012", - "\244\212\335\376\256f\226\307\202\216\220ad\224\324\300\012", - "\244\212\335\376\256supp\226\202wa\206\235\213\255\300\012", - "\252\210-\324\236\364\222\257\370\232cl\204\236bef\226\200\252\200(\375\231\233", - "\042\341e\270\333\364\222\257\275\273\334\042\375\333\250\312", - "\264\315\370\352\306(\315\215\233", - "#\324\200p\222\347\342\330\230\204\202\371\271 \352\216p\331be\205c \261\322c\347\012", - "\203pu\202l\203\200\305o l\201\253(aft\256subs\205tu\212s\233", - "\246n\314x \210r\257\351\271\200\374\201\320\257\273\264c\216l\012", - "m\216f\226m\236UTF-8 \213\340d\203g\320\257c\226rupt\236\357le: \211\012", - "\264\252\274bo\271 \042\220turn\333\225\207\042\220tur\342<\245ue>\042\012", - "\203\310\223\230\213\202\220tur\342typ\274(\306& n\201-\260y\233", - "\217k\221w\342\250\320\257\235\251\365\202\250 \327", - "c\225\235\314k\200\251\366a\206\251\277a\337\202\245u\200f\257\352\203\232x\236\306p\322\356t\256\327", - "\252\210-\324\236\364\222\226\206\225\207na\205\363\375\206\307\224\235\331\363\317e\312", - "\251\264\257\332\307\224\201l\224b\344\201\253\305 \251s\203g\362au\305\326\334\327", - "\317\200\310fl\336t: \201\200\302\271\200\317\274\275\216\220ad\224a\254gn\236\305 a\221\271\256i\372le\234\314\237\327", - "\221 \317\274\204\200\324\236f\257\276\012", - "\217k\221w\342au\305\326\201\325", - "\217k\221w\342\317\200\215 f\257au\305\326\201\325", - "pu\240\336 \304\274\225\207\345c\335\304\274\307\224\235\331\363\317\274\327", - "\317\200\304\274\307\224\235\316\203i\205\216iz\236\327", - "pu\240\336 \375\206\307\224\235\220tur\342\260y\206\327", - "a\227i\262ou\206\365t; \366ov\210rid\200\275\220qui\220\207\327", - "\376\256\302\267t\206\360\274\235\354 \324i\212\012", - "\272pect\236\366nam\200id\213\205\357\210\012", - "\264\213um\210a\237\220qui\220\206\217iqu\200\314g\012", - "c\225\235\331\363\220qui\220\207p\322\356\347\206aft\256\346\212\335p\322\356\347\312", + "\273subscript\320\252\200\042[ ]\333\364\222\226\205\334\307j\260\343\234\223\201\312", + "m\337\206-\343\234\223\201\335\255y\205\370f\337l\224\203i\206\216iz\274\012", + "\271ce\274\353\307ximum \376\257\302\343\234\223\201\312", + "\217\354\236c\345s\353b\242c\200(\042}\042\233", + "\230\204\202\302\272bod\224\371\270ou\202\272head\210\012", + "\255ys\320\345c\335\304\275\225\207\272\266t\205c\225\235\316pu\240\336 (\332\215\233", + "\217f\203ish\236\374\334bef\226\200\340\372il\257\343\220c\206v\311", + "dupl\336\222\200\266t; sam\200\315\276p\361s\236tw\336\311", + "\272\315\307\224\235\331\363\251\300a\337\202\244u\200(\332\215\233", + "m\337\206p\362\042#\344se\333\343\220c\206v\275betwe\212 \042#if ... #\212\343f\042\012", + "\042#\344seif\333\343\220c\206\363f\241\345w\205\352\042#\344se\333\343\220c\206v\311", + "\376\257\302\364\225d\205\360\275\235\357\202\270\200\364\222\226\012", + "\272\220s\337\202\366\302\364\222\226\231 \370\215\012", + "c\225\235\261\225g\200\313\322\236\364\222\226\312", + "\272\315\307\224\201l\224\331\363\251s\203g\362\366(\315%d\233", + "\272\315\307\224\235\316\251\220f\210\212c\200\315\260\352\306(\315\215\233", + "\332c\225\235\316bo\270 \251\220f\210\212c\200\225\207\352\306(\332\215\233", + "\273\242\213\335\376\257\313ci\223\334\351#p\242g\307\012", + "\242\213\335\376\257f\226\307\202\216\220ad\224\322\274\012", + "\242\213\335\376\257supp\226\202wa\205\235\212\256\274\012", + "\252\210-\322\236\364\222\260\370\232cl\204\236bef\226\200\252\200(\375\231\233", + "\042\341e\267\333\364\222\260\276\273\334\042\375\333\250\312", + "\272\315\370\352\306(\315\215\233", + "#\322\200p\222\347\342\327\230\204\202\371\270 \352\216p\331be\206c \261\321c\347\012", + "\203pu\202l\203\200\305o l\201\253(aft\257subs\206tu\213s\233", + "\246n\314x \210r\260\351\270\200\374\201\320\260\273\272c\216l\012", + "m\216f\226m\236UTF-8 \212\340d\203g\320\260c\226rupt\236\357le: \211\012", + "\272\252\275bo\270 \042\220turn\333\225\207\042\220tur\342<\244ue>\042\012", + "\203\310\223\230\212\202\220tur\342typ\275(\306& n\201-\255y\233", + "\217k\221w\342\250\320\260\235\251\365\202\250 \330", + "c\225\235\314k\200\251\366a\205\251\300a\337\202\244u\200f\260\352\203\232x\236\306p\321\356t\257\330", + "\252\210-\322\236\364\222\226\205\225\207na\206\363\375\205\307\224\235\331\363\317e\312", + "\251\272\260\332\307\224\201l\224b\344\201\253\305 \251s\203g\362au\305\325\334\330", + "\317\200\310fl\336t: \201\200\302\270\200\317\275\276\216\220ad\224a\254gn\236\305 a\221\270\257i\372le\234\314\237\330", + "\221 \317\275\204\200\322\236f\260\277\012", + "\217k\221w\342au\305\325\201\324", + "\217k\221w\342\317\200\215 f\260au\305\325\201\324", + "pu\240\336 \304\275\225\207\345c\335\304\275\307\224\235\331\363\317\275\330", + "\317\200\304\275\307\224\235\316\203i\206\216iz\236\330", + "pu\240\336 \375\205\307\224\235\220tur\342\255y\205\330", + "a\227i\262ou\205\365t; \366ov\210rid\200\276\220qui\220\207\330", + "\376\257\302\266t\205\360\275\235\354 \322i\213\012", + "\271pect\236\366nam\200id\212\206\357\210\012", + "\272\212um\210a\237\220qui\220\205\217iqu\200\314g\012", + "c\225\235\331\363\220qui\220\207p\321\356\347\205aft\257\346\213\335p\321\356\347\312", "\340\337\207\235f\203\207\356\227\210\231 \351\230ruc\202\215\012", - "\276 \360\274\235\331\363\251\354\353typ\311", - "\230ruc\202\220qui\220\206\217iqu\200\230ruc\202nam\311", - "\356\227\210\231 appe\204\206m\226\200\271\352\201c\200\351\230ruc\202\215\012", - "\264pro\305typ\274\360 \235\354\012" + "\277 \360\275\235\331\363\251\354\353typ\311", + "\230ruc\202\220qui\220\205\217iqu\200\230ruc\202nam\311", + "\356\227\210\231 appe\204\205m\226\200\270\352\201c\200\351\230ruc\202\215\012", + "\272pro\305typ\275\360 \235\354\012" #endif }; @@ -266,16 +266,16 @@ static char *fatalmsg[] = { #else "c\225\235\220a\207from \357le\355", "c\225\235writ\200\305 \357le\355", - "t\255\200ov\210f\345w\355", - "\203suff\336i\213\202\356m\226y\012", - "\273\361se\227l\256\203\230ruc\212\325", - "\373m\210\336 ov\210f\345w\320\272ce\300\353capacity\012", - "\340\372il\236scrip\202\272ce\300\206\271\200\307ximum \356m\226\224\341\200(%l\207bytes\233", - "\305o m\225\224\210r\257\356ssag\274\334\201\200l\203\311", + "t\256\200ov\210f\345w\355", + "\203suff\336i\212\202\356m\226y\012", + "\273\361se\227l\257\203\230ruc\213\324", + "\373m\210\336 ov\210f\345w\320\271ce\274\353capacity\012", + "\340\372il\236scrip\202\271ce\274\205\270\200\307ximum \356m\226\224\341\200(%l\207bytes\233", + "\305o m\225\224\210r\260\356ssag\275\334\201\200l\203\311", "\340\232pag\200\307pp\353\357\362\235fo\217d\012", "\273p\222h\355", - "\361s\210\237fail\300: \211\012", - "\252\256\210r\226: \211\012" + "\361s\210\237fail\274: \211\012", + "\252\257\210r\226: \211\012" #endif }; @@ -315,46 +315,46 @@ static char *warnmsg[] = { /*231*/ "state specification on forward declaration is ignored\n", /*232*/ "output file is written, but with compact encoding disabled\n", /*233*/ "state variable \"%s\" shadows a global variable\n", -/*234*/ "function is deprecated (symbol \"%s\") %s\n", +/*234*/ "symbol \"%s\" is marked as deprecated: %s\n", /*235*/ "public function lacks forward declaration (symbol \"%s\")\n", /*236*/ "unknown parameter in substitution (incorrect #define pattern)\n" #else - "\276 \275tr\242\222\236\305 %\207\261\322c\347\312", - "\220\324i\237\302\365t/\307cro \327", - "\376\256\302\267t\206\360\274\235\354 \324i\212\012", - "\250 \275nev\256\252\300\355", - "\250 \275a\254gn\236\251\245u\200\271a\202\275nev\256\252\300\355", - "\220d\217d\225\202\340\232: \365\202\374\334\275z\210o\012", - "\220d\217d\225\202te\230: \365\202\374\334\275n\201-z\210o\012", - "\217k\221w\342#p\244g\307\012", - "\264\371\271 \366\220s\337\202\252\236bef\226\200\324i\212\320f\226c\353\220p\204s\311", - "\375\231 sho\337\207\220tur\342\251\245u\311", - "po\254\240\200\252\200\302\250 bef\226\200\203i\205\216iza\212\355", - "po\254\240\224\217\203t\213\232\207a\254gn\234t\012", - "po\254\240\224\217\203t\213\232\207bit\371s\200\364a\212\012", + "\277 \276tr\243\222\236\305 %\207\261\321c\347\312", + "\220\322i\237\302\365t/\307cro \330", + "\376\257\302\266t\205\360\275\235\354 \322i\213\012", + "\250 \276nev\257\252\274\355", + "\250 \276a\254gn\236\251\244u\200\270a\202\276nev\257\252\274\355", + "\220d\217d\225\202\340\232: \365\202\374\334\276z\210o\012", + "\220d\217d\225\202te\230: \365\202\374\334\276n\201-z\210o\012", + "\217k\221w\342#p\242g\307\012", + "\272\371\270 \366\220s\337\202\252\236bef\226\200\322i\213\320f\226c\353\220p\204s\311", + "\375\231 sho\337\207\220tur\342\251\244u\311", + "po\254\240\200\252\200\302\250 bef\226\200\203i\206\216iza\213\355", + "po\254\240\224\217\203t\212\232\207a\254gn\234t\012", + "po\254\240\224\217\203t\212\232\207bit\371s\200\364a\213\012", "\366mis\354\012", - "po\254\240\224\251\042\350\333\306\315wa\206\203t\213\232d\355", - "\374\334\331\206\221 effect\012", + "po\254\240\224\251\042\350\333\306\315wa\205\203t\212\232d\355", + "\374\334\331\205\221 effect\012", "ne\230\236\340m\234t\012", - "\345os\200\203d\213\314\212\012", - "\241\207\230y\362pro\305typ\274\252\236\371\271 \346\212\335sem\336\241umn\312", - "\345c\335\332\215 s\331\360w\206\251\332a\202\251\313c\300\353lev\344\012", - "\374\334\371\271 \366ov\210rid\200\330appe\204 betwe\213 p\204\213\271ese\312", - "lab\344 nam\200\215 s\331\360w\206\366nam\311", - "\376\256\302\343git\206\272ce\300\206\244\212\335\376\256\313ci\223\201\012", - "\220d\217d\225\202\042\341e\270\042: \315\341\200\275\216way\2061 \327", - "\203\232\347m\203\222\200\306\341\200\351\042\341e\270\333\374\334\327", - "\217\220a\261\255\200\340\232\012", - "\251\332\275a\254gn\236\305 its\344f \327", - "m\226\200\203i\205\216iz\210\206\271\352\213um \357\344d\312", - "l\213g\271 \302\203i\205\216iz\256\272ce\300\206\341\200\302\271\200\213um \357\344d\012", - "\203\232x \366mis\354 \327", - "\221 i\372le\234\314\237f\257\317\200\215 \351\375\231\320\221 f\216l-back\012", - "\317\200specif\336a\237\334f\226w\204\207\232cl\322\237\275ig\221\220d\012", - "outpu\202\357\362\275writt\213\320bu\202\371\271 \340\372ac\202\213\340d\353\343s\255\300\012", - "\317\200\332\215 s\331\360w\206\251g\345b\335\304\311", - "\264\275\232\313c\222\236\321) \211\012", - "pu\240\336 \264lack\206f\226w\204\207\232cl\322\237\327", - "\217k\221w\342p\322\356t\256\351subs\205tu\237(\203c\226\220c\202#\324\200p\222\347n\233" + "\345os\200\203d\212\314\213\012", + "\241\207\230y\362pro\305typ\275\252\236\371\270 \346\213\335sem\336\241umn\312", + "\345c\335\332\215 s\331\360w\205\251\332a\202\251\313c\274\353lev\344\012", + "\374\334\371\270 \366ov\210rid\200\327appe\204 betwe\212 p\204\212\270ese\312", + "lab\344 nam\200\215 s\331\360w\205\366nam\311", + "\376\257\302\343git\205\271ce\274\205\242\213\335\376\257\313ci\223\201\012", + "\220d\217d\225\202\042\341e\267\042: \315\341\200\276\216way\2051 \330", + "\203\232\347m\203\222\200\306\341\200\351\042\341e\267\333\374\334\330", + "\217\220a\261\256\200\340\232\012", + "\251\332\276a\254gn\236\305 its\344f \330", + "m\226\200\203i\206\216iz\210\205\270\352\212um \357\344d\312", + "l\212g\270 \302\203i\206\216iz\257\271ce\274\205\341\200\302\270\200\212um \357\344d\012", + "\203\232x \366mis\354 \330", + "\221 i\372le\234\314\237f\260\317\200\215 \351\375\231\320\221 f\216l-back\012", + "\317\200specif\336a\237\334f\226w\204\207\232cl\321\237\276ig\221\220d\012", + "outpu\202\357\362\276writt\212\320bu\202\371\270 \340\372ac\202\212\340d\353\343s\256\274\012", + "\317\200\332\215 s\331\360w\205\251g\345b\335\304\311", + "\277 \276m\204k\236a\205\232\313c\222\274: \211\012", + "pu\240\336 \272lack\205f\226w\204\207\232cl\321\237\330", + "\217k\221w\342p\321\356t\257\351subs\206tu\237(\203c\226\220c\202#\322\200p\222\347n\233" #endif }; diff --git a/sourcepawn/compiler/sclist.c b/sourcepawn/compiler/sclist.c index fd8ccf0e..64bc7e60 100644 --- a/sourcepawn/compiler/sclist.c +++ b/sourcepawn/compiler/sclist.c @@ -31,6 +31,7 @@ #include #include #include "sc.h" +#include "lstring.h" #if defined FORTIFY #include @@ -280,6 +281,25 @@ SC_FUNC stringpair *insert_subst(char *pattern,char *substitution,int prefixlen) if ((cur=insert_stringpair(&substpair,pattern,substitution,prefixlen))==NULL) error(103); /* insufficient memory (fatal error) */ adjustindex(*pattern); + + if (pc_deprecate!=NULL) { + assert(cur!=NULL); + cur->flags|=flgDEPRECATED; + if (sc_status==statWRITE) { + if (cur->documentation!=NULL) { + free(cur->documentation); + cur->documentation=NULL; + } /* if */ + cur->documentation=pc_deprecate; + } else { + free(pc_deprecate); + } /* if */ + pc_deprecate=NULL; + } else { + cur->flags = 0; + cur->documentation = NULL; + } /* if */ + return cur; } @@ -292,6 +312,23 @@ SC_FUNC stringpair *find_subst(char *name,int length) item=substindex[(int)*name-PUBLIC_CHAR]; if (item!=NULL) item=find_stringpair(item,name,length); + + if (item && (item->flags & flgDEPRECATED) != 0) + { + static char macro[128]; + char *rem, *msg = (item->documentation != NULL) ? item->documentation : ""; + strlcpy(macro, item->first, sizeof(macro)); + + /* If macro contains an opening parentheses and a percent sign, then assume that + * it takes arguments and remove them from the warning message. + */ + if ((rem = strchr(macro, '(')) != NULL && strchr(macro, '%') > rem) + { + *rem = '\0'; + } + + error(234, macro, msg); /* deprecated (macro/constant) */ + } return item; }