コード例 #1
0
ファイル: tokens.cpp プロジェクト: graysonlang/nsis
int CEXEBuild::IsTokenPlacedRight(int pos, const TCHAR *tok)
{
  if (preprocessonly)
    return PS_OK;
  if ((unsigned int) pos > (sizeof(tokenlist) / sizeof(tokenType)))
    return PS_OK;

  int tp = tokenlist[pos].placement;
  int cp = GetCurrentTokenPlace();
  if (tp & cp) {
    return PS_OK;
  }
  else {
    TCHAR err[1024];
    if (cp == TP_SEC) {
      _tcscpy(err, _T("Error: command %") NPRIs _T(" not valid in Section\n"));
    }
    else if (cp == TP_FUNC) {
      _tcscpy(err, _T("Error: command %") NPRIs _T(" not valid in Function\n"));
    }
    else if (cp == TP_PAGEEX) {
      _tcscpy(err, _T("Error: command %") NPRIs _T(" not valid in PageEx\n"));
    }
    else
    {
      _tcscpy(err, _T("Error: command %") NPRIs _T(" not valid outside "));
      if (tp & TP_SEC)
        _tcscat(err, _T("Section"));
      if (tp & TP_FUNC)
      {
        if (tp & TP_SEC)
        {
          if (tp & TP_PAGEEX)
          {
            _tcscat(err, _T(", "));
          }
          else
          {
            _tcscat(err, _T(" or "));
          }
        }
        _tcscat(err, _T("Function"));
      }
      if (tp & TP_PAGEEX)
      {
        if (tp & TP_CODE)
        {
          _tcscat(err, _T(" or "));
        }
        _tcscat(err, _T("PageEx"));
      }
      _tcscat(err, _T("\n"));
    }
    ERROR_MSG(err, tok);
    return PS_ERROR;
  }
}
コード例 #2
0
ファイル: tokens.cpp プロジェクト: kichik/nsis-1
int CEXEBuild::IsTokenPlacedRight(int pos, char *tok)
{
  if ((unsigned int) pos > (sizeof(tokenlist) / sizeof(tokenType)))
    return PS_OK;

  int tp = tokenlist[pos].placement;
  int cp = GetCurrentTokenPlace();
  if (tp & cp) {
    return PS_OK;
  }
  else {
    char err[1024];
    if (cp == TP_SEC) {
      strcpy(err, "Error: command %s not valid in Section\n");
    }
    else if (cp == TP_FUNC) {
      strcpy(err, "Error: command %s not valid in Function\n");
    }
    else if (cp == TP_PAGEEX) {
      strcpy(err, "Error: command %s not valid in PageEx\n");
    }
    else
    {
      strcpy(err, "Error: command %s not valid outside ");
      if (tp & TP_SEC)
        strcat(err, "Section");
      if (tp & TP_FUNC)
      {
        if (tp & TP_SEC)
        {
          if (tp & TP_PAGEEX)
          {
            strcat(err, ", ");
          }
          else
          {
            strcat(err, " or ");
          }
        }
        strcat(err, "Function");
      }
      if (tp & TP_PAGEEX)
      {
        if (tp & TP_CODE)
        {
          strcat(err, " or ");
        }
        strcat(err, "PageEx");
      }
      strcat(err, "\n");
    }
    ERROR_MSG(err, tok);
    return PS_ERROR;
  }
}