* src/pp/ppcore.c
! restored previous algorithm for scanning #included files when included
file is given without path
Now the following(Cl*pper compatible) file search algorithm is used
for files which are not marked as system headers (system headers are
enclosed in <>):
1) if file name contains absolute path then open the file from
the given location. If path starts with drive letter then
is always used as absolute path regardless of used path separator
after drive delimiter: ":"
2) if file name contains relative path then open then:
a) try to access included file starting from current directory
b) try to access included file starting from the path taken from
the first compiled file in list of included files
c) check INCLUDE paths (paths specified by -I compile switch and
taken from INCLUDE envvar)
3) if file name does not contain any path then open then:
a) try to access included file starting from the path taken from
the first compiled file in list of included files (if it does
not have any path then starting from current directory)
b) check INCLUDE paths (paths specified by -I compile switch and
taken from INCLUDE envvar)
For files marked as system headers in #include directive (enclosed in <>)
the file name is always used as relative path and Harbour scans only
INCLUDE paths (-I and INCLUDE envvar). It's Harbour extension, Cl*pper
does not support system headers.
; Maybe we should think about adding yet another step between (b) and (c)
in case 2 above and between (a) and (b) in case 3:
- try to access included file starting from the path taken from
the file with #include directive
It should help to create nested projects using relative paths. Maybe
it should even have the highest priority. It could be important only
in case of file name conflicts.
* src/pp/ppcore.c
! fixed directory include precedence in #included files which
are not marked as system headers (system headers are enclosed in <>)
Now the following order is used:
1) try to access included file as is starting from current directory
2) if included file has relative path then check if the first
compiled file has path and if yes try to access file using this
path as start point
3) check INCLUDE paths (envvar and -I parameter)
Previous version used: 2 for nested files or 1 for first file or when
first file was given without path then 3.
Now we are Cl*pper compatible but such version strongly depends on
current directory which has the highest priority. Personally I do no
like such behavior because it may give different results when current
directory is changed.
* include/hbapifs.h
* src/rtl/filebuf.c
* move HB_FILE_TYPE_MAX definition to header file
% include C stat() header only in *nix builds
* src/pp/ppcore.c
! force stringify when illegal characters are included inside
square brackets []
* contrib/hbtip/utils.c
* src/rtl/gtwvt/gtwvt.c
* casting to pacify some warnings
* src/compiler/harbour.y
* src/compiler/harbour.yyc
* src/compiler/harbour.yyh
* changed type of valChar.length from int to HB_SIZE
* include/hbpp.h
* src/pp/ppcore.c
* changed type of last hb_pp_tokenBlockString() parameter
from int * to HB_SIZE *
* src/compiler/complex.c
* removed unnecessary casting
* include/hbpp.h
* src/pp/ppcore.c
* replaced compile time macro HB_PP_MULTILINE_STRINGS with
runtime #pragma setting, i.e.:
#paragma multilinestrings = on
* src/vm/hashes.c
% resize index during hash arrays sorting, i.e. when strict order
is disabled or user call HB_HSORT() function
! fixed typo in timestamp value comparison - in practice only date
part was significant
! fixed new code I added recently for resorting hash arrays with
strict order
* bin/check.hb
! made it work regardless of cwd
+ added --fixup option to fix/process files
+ extended detection of SVN IDs based on 'ident' option
in .gitattributes. Now also warn if missing.
+ added detection of C++ style comments in C files
+ ported Harbour function name casing fixup code, so
it can now be done automatically before commit
* bin/commit.hb
* minor change in option name
* contrib/gtwvg/wvgwin.c
* contrib/gtwvg/wvgwing.c
! deleted large amount of MSDN documentation in C++ comments
! fixed C++ comments
* src/pp/ppcore.c
* avoid false C++ comment detection in deffed out
non-code section
* src/rtl/gttrm/gttrm.c
* contrib/rddads/adsx.c
* contrib/xhb/filestat.c
! fixed C++ comment
* contrib/hbrun/hbrun.hbp
* utils/hbmk2/hbmk2.hbp
+ better comment
* extras/gtwvw/hbgtwvw.h
* extras/gtwvw/*.c
! fixed C++ comments
* (all files)
* stripped svn header
* minor cleanups
; use following command to find out the history of files:
git log
git log --follow
git blame
git annotate