Exemple #1
0
const wchar_t * StrStrI(const wchar_t *str1, const wchar_t *str2)
{
	if (!*str2)
		return str1;

	const wchar_t *cp = str1;
	while (*cp)
	{
		const wchar_t *s1 = cp;
		const wchar_t *s2 = str2;

		while (*s1 && *s2 && !(Lower(*s1)-Lower(*s2)))
		{
			s1++;
			s2++;
		}

		if (!*s2)
			return cp;

		cp++;
	}

	return nullptr;
}
Exemple #2
0
const wchar_t * RevStrStrI(const wchar_t *str1, const wchar_t *str2)
{
	int len1 = StrLength(str1);
	int len2 = StrLength(str2);

	if (len2 > len1)
		return nullptr;

	if (!*str2)
		return &str1[len1];

	const wchar_t *cp = &str1[len1-len2];

	while (cp >= str1)
	{
		const wchar_t* s1 = cp;
		const wchar_t* s2 = str2;

		while (*s1 && *s2 && !(Lower(*s1)-Lower(*s2)))
		{
			s1++;
			s2++;
		}

		if (!*s2)
			return cp;

		cp--;
	}

	return nullptr;
}
nsresult
IDBKeyRange::BindToStatement(mozIStorageStatement* aStatement) const
{
  MOZ_ASSERT(aStatement);

  NS_NAMED_LITERAL_CSTRING(lowerKey, "lower_key");

  if (IsOnly()) {
    return Lower().BindToStatement(aStatement, lowerKey);
  }

  nsresult rv;

  if (!Lower().IsUnset()) {
    rv = Lower().BindToStatement(aStatement, lowerKey);
    if (NS_WARN_IF(NS_FAILED(rv))) {
      return rv;
    }
  }

  if (!Upper().IsUnset()) {
    rv = Upper().BindToStatement(aStatement, NS_LITERAL_CSTRING("upper_key"));
    if (NS_WARN_IF(NS_FAILED(rv))) {
      return rv;
    }
  }

  return NS_OK;
}
Exemple #4
0
bool DictNode::addFreq(char * flexform,char * lextype,int n,char * bf,unsigned int offset,Case cse)
    {
    int i;
    if(cse == casesensitive)
        for(i = 0;flexform[i] && this->m_flexform[i] && flexform[i] == this->m_flexform[i];++i)
            ;
    else
        for(i = 0;flexform[i] && this->m_flexform[i] && Lower(flexform[i]) == Lower(this->m_flexform[i]);++i)
            ;
    if(i > 0 || flexform[i] == this->m_flexform[i])
        { // (partial) overlap
        if(!this->m_flexform[i])
            { // looked-for string incorporates this string
            if(flexform[i])
                { // new string longer than this string
                if(leaf)
                    {
                    return false; // Nothing to do; word isn't in dictionary.
                    }
                else
                    {
                    if((unsigned char)flexform[i] < (unsigned char)u.sub->m_flexform[0])
                        {
                        return false; // Nothing to do; word isn't in dictionary.
                        }
                    else
                        {
                        return u.sub->addFreq(flexform + i,lextype,n,bf,offset,cse);
                        }
                    }
                }
            else if(!leaf)
                { // new string equal to this string, but this string is not a leaf
                        return u.sub->addFreq(flexform + i,lextype,n,bf,offset,cse);
//                return false; // Nothing to do; word isn't in dictionary.
                }
            else // only difference between new string and this string is (possibly) lextype
                {
                if(u.type->addFreq(lextype,n,bf,false,offset))
                    return true;
                if(bf == NULL)
                    return false;
                return u.type->addFreq(lextype,n,bf,true,offset);
                // add frequency to one of the lemmas
                }
            }
        else 
            {
            return false; // Nothing to do; word isn't in dictionary.
            }
        }
    else if(next && (unsigned char)flexform[0] > (unsigned char)this->m_flexform[0])
        {
        return next->addFreq(flexform,lextype,n,bf,offset,cse);
        }
    return false; // Nothing to do; word isn't in dictionary.
    }
Exemple #5
0
local void ball_search(smxptr sm, real r2ball, real *ri)
{
    kdnode *ntab = sm->kd->ntab;
    bodyptr *bptr = sm->kd->bptr;
    pqnode *pq = sm->pqhead;
    int cell, cp, ct, pj;
    real dist2;

    cell = KDROOT;                              /* start at root of tree    */
    while (cell < sm->kd->nsplit) {             /* descend to local bucket  */
        if (ri[ntab[cell].dim] < ntab[cell].split)
            cell = Lower(cell);
        else
            cell = Upper(cell);
    }
    for (pj = ntab[cell].first; pj <= ntab[cell].last; ++pj)
	if (! InQue(bptr[pj])) {		/* in bucket, but not que?  */
	    DISTSQV(dist2, ri, Pos(bptr[pj]));  /* compute dist^2 to center */
	    if (dist2 < r2ball) {		/* within current ball?     */
		ClrFlag(bptr[pq->pind], INQUE);	/* drop furthest from que   */
		SetFlag(bptr[pj], INQUE);	/* and add this one to que  */
		pq->pqkey = dist2;              /* store its distance       */
		pq->pind = pj;                  /* and its index            */
		PQReplace(pq);                  /* move to rightful place   */
		r2ball = pq->pqkey;             /* adopt new search radius  */
	    }
	}
    while (cell != KDROOT) {			/* scan back toward root    */
        cp = Sibling(cell);
        ct = cp;
        SetNext(ct);
	do {
            Intersect(ntab[cp], r2ball, ri, GetNextCell);
						/* got intersection to test */
            if (cp < sm->kd->nsplit) {          /* not yet down to bucket?  */
                cp = Lower(cp);
                continue;
            } else                              /* scan bucket for winners  */
                for (pj = ntab[cp].first; pj <= ntab[cp].last; ++pj)
		    if (! InQue(bptr[pj])) {	/* not already in the que?  */
			DISTSQV(dist2, ri, Pos(bptr[pj]));
			if (dist2 < r2ball) {	/* but within current ball? */
			    ClrFlag(bptr[pq->pind], INQUE);
			    SetFlag(bptr[pj], INQUE);
			    pq->pqkey = dist2;
			    pq->pind = pj;
			    PQReplace(pq);
			    r2ball = pq->pqkey;
			}
		    }
          GetNextCell:
            SetNext(cp);
        } while (cp != ct);
        cell = Parent(cell);			/* climb down towards root  */
    }
    sm->pqhead = pq;
}
Exemple #6
0
long strindex(char *haystack, char *needle)
{
	while(Lower(*haystack) == Lower(*needle))
	{
		haystack++, needle++;
		if(*needle == '\0')
			return 0;
	}
	return 1;
}
Exemple #7
0
local void upward_pass(kdxptr kd, int cell)
{
  kdnode *ntab = kd->ntab;

  if (ntab[cell].dim != -1) {			// not a terminal node?
    upward_pass(kd, Lower(cell));
    upward_pass(kd, Upper(cell));
    combine_nodes(&ntab[cell], &ntab[Lower(cell)], &ntab[Upper(cell)]);
  } else					// scan bodies in node
    set_bounds(&ntab[cell].bnd, kd->bptr, ntab[cell].first, ntab[cell].last);
}
Exemple #8
0
bool
IDBKeyRange::Includes(JSContext* aCx,
                      JS::Handle<JS::Value> aValue,
                      ErrorResult& aRv) const
{
  Key key;
  aRv = GetKeyFromJSVal(aCx, aValue, key);
  if (aRv.Failed()) {
    return false;
  }

  switch (Key::CompareKeys(Lower(), key)) {
  case 1:
    return false;
  case 0:
    // Identical keys.
    if (LowerOpen()) {
      return false;
    }
    break;
  case -1:
    if (IsOnly()) {
      return false;
    }
    break;
  default:
    MOZ_CRASH();
  }

  if (!IsOnly()) {
    switch (Key::CompareKeys(key, Upper())) {
    case 1:
      return false;
    case 0:
      // Identical keys.
      if (UpperOpen()) {
        return false;
      }
      break;
    case -1:
      break;
    }
  } else {
    MOZ_ASSERT(key == Lower());
  }

  return true;
}
Exemple #9
0
void build_kdtree(kdxptr kd, int nbucket)
{
    int k, n, i, d, m, j, ct;
    kdnode *ntab;

    n = kd->ngas;
    k = 1;
    while (n > nbucket) {
	n = n>>1;
	k = k<<1;
    }
    kd->nnode = k<<1;
    kd->nsplit = k;
    ntab = kd->ntab = (kdnode *) allocate(kd->nnode * sizeof(kdnode));
    ntab[KDROOT].first = 0;			/* initialize root node	    */
    ntab[KDROOT].last = kd->ngas-1;
    ntab[KDROOT].bnd = kd->bnd;
    i = KDROOT;
    ct = KDROOT;
    SetNext(ct);
    for ( ; ; ) {				/* loop splitting nodes	    */
	if (i < kd->nsplit) {
	    d = 0;				/* find longest dimension   */
	    for (j=1; j<3; ++j) {
		if (ntab[i].bnd.maxb[j]-ntab[i].bnd.minb[j] > 
		      ntab[i].bnd.maxb[d]-ntab[i].bnd.minb[d])
		    d = j;
	    }
	    m = median_index(kd->bptr, d, ntab[i].first, ntab[i].last);
	    ntab[i].dim = d;
	    ntab[i].split = Pos(kd->bptr[m])[d];
	    ntab[Lower(i)].bnd = ntab[i].bnd;
	    ntab[Lower(i)].bnd.maxb[d] = ntab[i].split;
	    ntab[Lower(i)].first = ntab[i].first;
	    ntab[Lower(i)].last = m-1;
	    ntab[Upper(i)].bnd = ntab[i].bnd;
	    ntab[Upper(i)].bnd.minb[d] = ntab[i].split;
	    ntab[Upper(i)].first = m;
	    ntab[Upper(i)].last = ntab[i].last;
	    i = Lower(i);
	} else {
	    ntab[i].dim = -1;
	    SetNext(i);
	    if (i == ct) break;
	}
    }
    upward_pass(kd, KDROOT);
}
Exemple #10
0
void NTPath::Transform()
{
	string& Data = *this;
	if (!Data.IsEmpty())
	{
		if(!HasPathPrefix(Data))
		{
			ConvertNameToFull(Data,Data);

			if (!HasPathPrefix(Data))
			{
				ReplaceSlashToBSlash(Data);
				string Prefix(ParsePath(Data) == PATH_DRIVELETTER? L"\\\\?\\" : L"\\\\?\\UNC");
				while(ReplaceStrings(Data,L"\\\\",L"\\"));
				Data=Prefix+Data;
			}
		}
		if(Data.At(5) == L':')
		{
			// "\\?\C:" -> "\\?\c:"
			// Some file operations fails on Win2k if a drive letter is in upper case
			Lower(4,1);
		}
	}
}
Exemple #11
0
int PFSLoader::GetFile(char *name, uchar **buf, int *len) {
  struct_directory s3d_dir;
  struct_data_block s3d_data;
  char *temp2;
  long inf;
  int i;
  Lower(name);

  for(i = 0; i < this->count; ++i) {

    // Derision: Added basic wildcard ability as .ZON filenames don't always match the EQG name
    if(!strcmp(this->filenames[i], name) ||
       ((name[0]=='*') && !strcmp(this->filenames[i]+strlen(filenames[i])-strlen(name)+2, name+2))) {
      fseek(this->fp, this->files[i], SEEK_SET);
      fread(&s3d_dir, sizeof(struct_directory), 1, this->fp);
      fseek(this->fp, s3d_dir.offset, SEEK_SET);
      *buf = new uchar[s3d_dir.size];

      inf = 0;
      while(inf < (int)s3d_dir.size) {
        fread(&s3d_data, sizeof(struct_data_block), 1, this->fp);
        temp2 = new char[s3d_data.deflen];
        fread(temp2, s3d_data.deflen, 1, this->fp);
        decompress(temp2, (char *) *buf + inf, s3d_data.deflen, s3d_data.inflen);
        delete [] temp2;
        inf += s3d_data.inflen;
      }

      *len = inf;
      return 1;
    }
  }
  return 0;
}
Exemple #12
0
local int ball_gather(smxptr sm, real r2ball, real *ri)
{
    kdnode *ntab = sm->kd->ntab;
    bodyptr *bptr = sm->kd->bptr;
    int cp, nball, pj;
    real dist2;

    nball = 0;
    cp = KDROOT;
    do {
        Intersect(ntab[cp], r2ball, ri, GetNextCell);
						/* got intersection to test */
        if (cp < sm->kd->nsplit) {
            cp = Lower(cp);
            continue;
        } else {
            for (pj = ntab[cp].first; pj <= ntab[cp].last; ++pj) {
		DISTSQV(dist2, ri, Pos(bptr[pj]));
                if (dist2 < r2ball) {
                    sm->r2list[nball] = dist2;
                    sm->inlist[nball++] = pj;
                }
            }
        }
      GetNextCell:
        SetNext(cp);
    } while (cp != KDROOT);
    if (nball > sm->nsmooth + EXTLIST)
	error("%s: gathered list overflow\n", getargv0());
    return (nball);
}
static inline void SolveEqs(Cut *cut, count ncut,
  creal *delta, creal diff)
{
  real last = 0;
  real r = 1;
  Cut *c;

  for( c = cut; ; ++c ) {
    ccount dim = Dim(c->i);
    c->row = r -=
      Div(diff, (delta[Lower(dim)] + delta[Upper(dim)])*c->df);
    if( --ncut == 0 ) break;
    last += r*c->lhs;
  }

  last = Div(c->lhs - last, r);

  for( ; c >= cut; last += (--c)->lhs ) {
    creal delmin = -(c->delta = delta[c->i]);
    creal delmax = FRACT*(delmin + c->save);
    c->sol = Div(last, c->df);
    if( c->sol > delmax ) c->sol = .75*delmax;
    if( c->sol < delmin ) c->sol = .75*delmin;
  }
}
Exemple #14
0
void FbSQLite3Statement::FTS(int index, const wxString& value)
{
	wxString result;
	wxString keywords = wxT("OR AND NOT");
	wxStringTokenizer tkz(value, wxT(' '), wxTOKEN_STRTOK);
	while (tkz.HasMoreTokens()) {
		if (!result.IsEmpty()) result << wxT(' ');
		wxString word = tkz.GetNextToken();
		if (keywords.Find(word) != wxNOT_FOUND) {
		} else if (word.Left(4) == wxT("NEAR")) {
		} else {
			word = Lower(word);
			size_t len = word.Len();
			for (size_t i = 0; i < len; i++) {
				if (word[i] == 0x0451) word[i] = 0x0435;
			}
			if (word.Right(1) == wxT('"')) {
				word.insert(word.Len() - 1, wxT('*'));
			} else {
				word << wxT('*');
			}
		}
		result << word;
	}
	FbSQLite3Statement::Bind(index, result);
}
Exemple #15
0
bool Socket::HandleGenderInput()
{
    bool gf = false;
    Player* mob = GetPlayer();
    std::string input = PopCommand();
    Lower(input);

    if (input.length() >= 1)
        {
            if (input[0] == 'm')
                {
                    mob->SetGender(Gender::Male);
                    gf = true;
                }
            if (input[0] == 'f')
                {
                    mob->SetGender(Gender::Female);
                    gf = true;
                }
        }

    if (gf)
        {
            InitializeNewPlayer();
        }

    return true;
}
Exemple #16
0
void FbSearchFunction::Execute(wxSQLite3FunctionContext& ctx)
{
	int argc = ctx.GetArgCount();
	if (argc != 1) {
		ctx.SetResultError(wxString::Format(fbT("Wrong SEARCH argc: %d."), argc));
		return;
	}

	wxString input = ctx.GetString(0);
	wxArrayString words;
	wxStringTokenizer tkz(Lower(input), wxT(' '), wxTOKEN_STRTOK);
	while (tkz.HasMoreTokens()) {
		words.Add(tkz.GetNextToken());
	}

	size_t count = m_masks.Count();
	for (size_t i = 0; i < count; i++) {
		bool not_found = true;
		size_t count = words.Count();
		for (size_t j = 0; j < count; j++) {
			if ( words[j].Matches(m_masks[i]) ) {
				not_found = false;
				break;
			}
		}
		if (not_found) {
			ctx.SetResult(false);
			return;
		}
	}
	ctx.SetResult(true);
}
Exemple #17
0
int PFSLoader::GetFile(char *name, uchar **buf, int *len) {
  struct_directory s3d_dir;
  struct_data_block s3d_data;
  char *temp2;
  long inf;
  int i;
  Lower(name);

  for(i = 0; i < this->count; ++i) {
    if(!strcmp(this->filenames[i], name)) {
      fseek(this->fp, this->files[i], SEEK_SET);
      fread(&s3d_dir, sizeof(struct_directory), 1, this->fp);
      fseek(this->fp, s3d_dir.offset, SEEK_SET);
      *buf = new uchar[s3d_dir.size];
      
      inf = 0;
      while(inf < (int)s3d_dir.size) {
        fread(&s3d_data, sizeof(struct_data_block), 1, this->fp);
        temp2 = new char[s3d_data.deflen];
        fread(temp2, s3d_data.deflen, 1, this->fp);
        decompress(temp2, (char *) *buf + inf, s3d_data.deflen, s3d_data.inflen);
        delete[] temp2;
        inf += s3d_data.inflen;
      }

      *len = inf;
      return 1;
    }
  }
  return 0;
}
bool
IDBKeyRange::Includes(JSContext* aCx,
                      JS::Handle<JS::Value> aValue,
                      ErrorResult& aRv) const
{
  Key key;
  aRv = GetKeyFromJSVal(aCx, aValue, key);
  if (aRv.Failed()) {
    return false;
  }

  MOZ_ASSERT(!(Lower().IsUnset() && Upper().IsUnset()));
  MOZ_ASSERT_IF(IsOnly(),
    !Lower().IsUnset() && !LowerOpen() &&
    Lower() == Upper() && LowerOpen() == UpperOpen());

  if (!Lower().IsUnset()) {
    switch (Key::CompareKeys(Lower(), key)) {
    case 1:
      return false;
    case 0:
      // Identical keys.
      return !LowerOpen();
    case -1:
      if (IsOnly()) {
        return false;
      }
      break;
    default:
      MOZ_CRASH();
    }
  }

  if (!Upper().IsUnset()) {
    switch (Key::CompareKeys(key, Upper())) {
    case 1:
      return false;
    case 0:
      // Identical keys.
      return !UpperOpen();
    case -1:
      break;
    }
  }

  return true;
}
Exemple #19
0
FbSearchFunction::FbSearchFunction(const wxString & input)
{
	FbLogMessage(_("Search template"), input);
	wxStringTokenizer tkz(Lower(input), wxT(' '), wxTOKEN_STRTOK);
	while (tkz.HasMoreTokens()) {
		m_masks.Add(tkz.GetNextToken());
	}
}
char* _NativeFrameworkDSString::toLowerCase(){
	for_each(
		variableString.begin(),
		variableString.end(),
		Lower());

	return (char*)variableString.c_str();
}
static inline real Volume(cThis *t, creal *delta)
{
  real vol = 1;
  count dim;
  for( dim = 0; dim < t->ndim; ++dim )
    vol *= delta[Lower(dim)] + delta[Upper(dim)];
  return vol;
}
void FbExportParentData::Append(FbModel & model, int book, wxFileName &filename, int size)
{
	int number = 0;
	wxString name = filename.GetName();
	while (true) {
		wxString fullname = Lower(filename.GetFullName());
		size_t count = Count(model);
		bool ok = true;
		for (size_t i = 0; i < count; i++) {
			FbModelData * data = Items(model, i);
			if (!data) continue;
			if (Lower(data->GetValue(model)) == fullname) { ok = false; break; }
		}
		if (ok) break;
		filename.SetName(name + wxString::Format(wxT("(%d)"), ++number));
	}
	new FbExportChildData(model, this, book, filename, size);
}
Exemple #23
0
Function* Function::FindFunction(		
	sqlite3*		db,
	const wstring&	name )
{
	auto it = gFunctions.find( FuncKey( db, Lower( name ) ) );
	return it != gFunctions.end() ?
		it->second :
		NULL;
}
Exemple #24
0
void YesNoHandler::Input(void* arg, const std::string &input)
{
    std::string text = input;
    Lower(text);
    if (text == "y" || text == "yes")
        {
            _cb((Socket*)arg, true, _arg);
        }

    _cb((Socket*)arg, false, _arg);
}
void
IDBKeyRange::ToSerialized(SerializedKeyRange& aKeyRange) const
{
  aKeyRange.lowerOpen() = LowerOpen();
  aKeyRange.upperOpen() = UpperOpen();
  aKeyRange.isOnly() = IsOnly();

  aKeyRange.lower() = Lower();
  if (!IsOnly()) {
    aKeyRange.upper() = Upper();
  }
}
void CDODBaseRocketWeapon::SecondaryAttack()
{
	CBasePlayer *pPlayer = GetPlayerOwner();

	//if we're underwater, lower it
	if( pPlayer->GetWaterLevel() > 2 )
	{
		if( IsDeployed() )
			Lower();
		return;
	}

	if( IsDeployed() )
	{	
		Lower();
	}
	else
	{
		if ( CanAttack() )
            Raise();
	}	
}
Exemple #27
0
char       *
slower(char *in_s)
{
  int         cnt = 0;
  char       *out_s = (char *) malloc(strlen(in_s) + 1);

  if (out_s == NULL)
    exit_cover(NC_MEM_ERR_F);
  while (in_s[cnt] != '\0') {
    out_s[cnt] = Lower((int)in_s[cnt]);
    cnt++;
  }
  out_s[cnt] = '\0';
  return (out_s);
}
Exemple #28
0
void WordToken::SetFirstInSentence(bool b) {
  //  std::cout << "sf " << string << std::endl;
  char st[MAX_WORD_LENGTH];
  firstInSentence = b;
  if (b) {
    if (IsUpper(*string)) 
      return;
    *st = Upper(*string);
  } else {
    if (IsLower(*string))
      return;
    *st = Lower(*string);
  }
  strcpy(st+1, string+1);      
  SetWord(word, st, token);
}
Exemple #29
0
void FbLowerFunction::Execute(wxSQLite3FunctionContext& ctx)
{
	int argc = ctx.GetArgCount();
	if (argc == 1) {
		wxString str = Lower(ctx.GetString(0));
		size_t len = str.Len();
		for (size_t i = 0; i < len; i++) {
			if (str[i] == 0x0451) str[i] = 0x0435;
			#ifndef SQLITE_ENABLE_ICU
			if (!IsAlpha(str[i])) str[i] = 0x20;
			#endif
		}
		ctx.SetResult(str);
	} else {
		ctx.SetResultError(wxString::Format(fbT("Wrong LOWER argc: %d."), argc));
	}
}
Exemple #30
0
const char * lext::constructBaseform(const char * fullform) const
    {
    static char buf[256];
    int off = S.Offset;
    const char * w;
    char * pbuf = buf;
    for(w = fullform;*w && off;--off)
        {
        *pbuf++ = (char)Lower(*w);
        w++;
        }
    for(w = BaseFormSuffix;*w;)
        {
        *pbuf++ = *w++;
        }
    *pbuf = '\0';
    return buf;
    }