Администратор Райан Posted May 17, 2021 Администратор Share Posted May 17, 2021 Pragma это переменные (Да, смейтесь, я не силен в терминологии SourceMod), которые обычно при написании плагина мы указываем в самом верху исходника. Обычно это что то вроде: #pragma semicolon 1 #pragma tabsize 0 #pragma newdecls optional #pragma newdecls required Так вот, чисто для себя, оставлю здесь полный Pragma Case. Возможно мне пригодится в будущем. case tpPRAGMA: if (!SKIPPING) { if (lex(&val, &str) == tSYMBOL) { if (strcmp(str, "ctrlchar") == 0) { while (*lptr <= ' ' && *lptr != '\0') lptr++; if (*lptr == '\0') { sc_ctrlchar = sc_ctrlchar_org; } else { if (lex(&val, &str) != tNUMBER) error(27); /* invalid character constant */ sc_ctrlchar = (char)val; } } else if (strcmp(str, "deprecated") == 0) { while (*lptr <= ' ' && *lptr != '\0') lptr++; pc_deprecate = (char*)lptr; lptr = (unsigned char*)strchr( (char*)lptr, '\0'); /* skip to end (ignore "extra characters on line") */ } else if (strcmp(str, "dynamic") == 0) { preproc_expr(&pc_stksize, NULL); } else if (strcmp(str, "rational") == 0) { while (*lptr != '\0') lptr++; } else if (strcmp(str, "semicolon") == 0) { cell val; preproc_expr(&val, NULL); sc_needsemicolon = (int)val; } else if (strcmp(str, "newdecls") == 0) { while (*lptr <= ' ' && *lptr != '\0') lptr++; if (strncmp((char*)lptr, "required", 8) == 0) sc_require_newdecls = 1; else if (strncmp((char*)lptr, "optional", 8) == 0) sc_require_newdecls = 0; else error(146); lptr = (unsigned char*)strchr( (char*)lptr, '\0'); /* skip to end (ignore "extra characters on line") */ } else if (strcmp(str, "tabsize") == 0) { cell val; preproc_expr(&val, NULL); sc_tabsize = (int)val; } else if (strcmp(str, "unused") == 0) { char name[sNAMEMAX + 1]; size_t i; int comma; symbol* sym; do { /* get the name */ while (*lptr <= ' ' && *lptr != '\0') lptr++; for (i = 0; i < sizeof name && alphanum(*lptr); i++, lptr++) name[i] = *lptr; name[i] = '\0'; /* get the symbol */ sym = findloc(name); if (sym == NULL) sym = findglb(name); if (sym != NULL) { sym->usage |= uREAD; if (sym->ident == iVARIABLE || sym->ident == iREFERENCE || sym->ident == iARRAY || sym->ident == iREFARRAY) sym->usage |= uWRITTEN; } else { error(17, name); /* undefined symbol */ } /* see if a comma follows the name */ while (*lptr <= ' ' && *lptr != '\0') lptr++; comma = (*lptr == ','); if (comma) lptr++; } while (comma); } else { error(207); /* unknown #pragma */ } } else { error(207); /* unknown #pragma */ } check_empty(lptr); } break; 0 Quote Ненавижу загружать новые файлы, но обожаю обновлять версии. Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.