summaryrefslogtreecommitdiff
path: root/xbase64/xbfile.cpp
blob: 0064a88dc1f4374041e08bedad97d84812b5ed46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*  xbfile.cpp

    Xbase64 project source code

    This file contains logic for the basic Xbase class.

    Copyright (C) 1997,2003,2004  Gary A Kunkel
                                  Sergiy Yakovin    
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA


    Contact:
    
     Email:
    
      xdb-devel@lists.sourceforge.net
      xdb-users@lists.sourceforge.net
      
      
     Regular Mail:
     
       XBase Support
       149C South Main St
       Keller Texas, 76248     
       USA

*/

#ifdef __GNU LesserG__
  #pragma implementation "xbfile.h"
#endif

#ifdef __WIN32__
#include <xbase64/xbwincfg.h>
#else
#include <xbase64/xbconfig.h>
#endif

#include <xbase64/xbase64.h>

xbString xbFile::MakeFileName(const char *name)
{
  xbString file=name;
  if (file.isEmpty()) return file;
  int len=strlen(name);
  const char *extLower=GetExtWithDot(true);
  const char *extUpper=GetExtWithDot(false);
  int lenLower=strlen(extLower);
  int lenUpper=strlen(extUpper);
  if (len>lenLower && strcmp(&name[len-lenLower], extLower)==0 ||
       len>lenUpper && strcmp(&name[len-lenUpper], extUpper)==0) return file;
  char lastSymbol=name[len-1];
  file+=GetExtWithDot(lastSymbol<'A' || lastSymbol>'Z');
  return file;
}