diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 783361e942..c1351f9310 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,51 @@ The license applies to all entries newer than 2009-04-28. */ +2010-11-28 10:37 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + + config/hbc.cfg + + Added .c source formatter config file for uncrustify source code formatter, + tailored to mimic Harbour C formatting style. + http://uncrustify.sourceforge.net/ + This tool looks very promising to save manual formatting time. + (in our case it's useful for new code, existing code is mostly + quite well formatted in most parts) + ; WARNING: The config is currently at experimental stage (IOW it's + not perfect), so don't use it to format any existing + Harbour source, but you may try it with your local source + which you want to submit or see how would it look in + Harbour-style. + + * contrib/hbtip/url.prg + ! Fixed to store passed url in :cAddress VAR. + Like with most Harbour OOP code, this simple change may + introduce hard-to-detect imcompatibility, + so check your code. + + - contrib/rddbm/rddbmcdx.hbp + + contrib/rddbm/rddbm.hbp + - contrib/rddbm/rddbmcdx.hbc + + contrib/rddbm/rddbm.hbc + ! Renamed too. + + * src/codepage/cpsk852.c + * src/codepage/cpskiso.c + * src/codepage/cpskwin.c + * Trying to add digraphs. (doesn't work here, but can't find out why) + ; TODO: Update Kamenicky. (can't even do it with hb_translate(), + as it's messed up the first time I edit it. + ; TODO: Apply final fixes to CS CPs. + + * contrib/sddoci/sddoci.hbp + + Added support for implib creation for win x64 targets. + + * package/winuni/RELNOTES + * OCILIB version update. + + * contrib/rddbm/bmdbfcdx.c + * contrib/hbhttpd/core.prg + * contrib/hbhttpd/widgets.prg + * Formatting. + 2010-11-27 21:11 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * contrib/hbplist - contrib/rddbmcdx diff --git a/harbour/config/hbc.cfg b/harbour/config/hbc.cfg new file mode 100644 index 0000000000..baa2d87ad0 --- /dev/null +++ b/harbour/config/hbc.cfg @@ -0,0 +1,579 @@ +# +# $Id$ +# + +# uncrustify config file for Harbour C/C++ sources. +# http://uncrustify.sourceforge.net/ + +indent_with_tabs = 0 # 1=indent to level only, 2=indent with tabs +align_with_tabs = false # use tabs to align +align_on_tabstop = TRUE # align on tabstops +input_tab_size = 8 # original tab size +output_tab_size = 3 # new tab size +indent_columns = output_tab_size + +indent_label = 2 # pos: absolute col, neg: relative column + + +# +# inter-symbol newlines +# + +nl_enum_brace = force # "enum {" vs "enum \n {" +nl_union_brace = force # "union {" vs "union \n {" +nl_struct_brace = force # "struct {" vs "struct \n {" +nl_do_brace = force # "do {" vs "do \n {" +nl_if_brace = force # "if () {" vs "if () \n {" +nl_for_brace = force # "for () {" vs "for () \n {" +nl_else_brace = force # "else {" vs "else \n {" +nl_while_brace = force # "while () {" vs "while () \n {" +nl_switch_brace = force # "switch () {" vs "switch () \n {" +nl_brace_while = force # "} while" vs "} \n while" - cuddle while +nl_brace_else = force # "} else" vs "} \n else" - cuddle else +nl_func_var_def_blk = 1 +nl_fcall_brace = force # "list_for_each() {" vs "list_for_each()\n{" +nl_fdef_brace = force # "int foo() {" vs "int foo()\n{" +# nl_after_return = TRUE; +# nl_before_case = 1 + + +# +# Source code modifications +# + +mod_paren_on_return = remove # "return 1;" vs "return (1);" +# mod_full_brace_if = remove # "if (a) a--;" vs "if (a) { a--; }" +# mod_full_brace_for = remove # "for () a--;" vs "for () { a--; }" +# mod_full_brace_do = remove # "do a--; while ();" vs "do { a--; } while ();" +# mod_full_brace_while = remove # "while (a) a--;" vs "while (a) { a--; }" + +# Add or remove braces on single-line 'do' statement +mod_full_brace_do = force # ignore/add/remove/force + +# Add or remove braces on single-line 'for' statement +mod_full_brace_for = remove # ignore/add/remove/force + +# Add or remove braces on single-line function definitions. (Pawn) +mod_full_brace_function = force # ignore/add/remove/force + +# Add or remove braces on single-line 'if' statement. Will not remove the braces if they contain an 'else'. +mod_full_brace_if = remove # ignore/add/remove/force + +# Make all if/elseif/else statements in a chain be braced or not. Overrides mod_full_brace_if. +# If any must be braced, they are all braced. If all can be unbraced, then the braces are removed. +mod_full_brace_if_chain = false # false/true + +# Don't remove braces around statements that span N newlines +mod_full_brace_nl = 0 # number + +# Add or remove braces on single-line 'while' statement +mod_full_brace_while = remove # ignore/add/remove/force + +# Add or remove braces on single-line 'using ()' statement +mod_full_brace_using = ignore # ignore/add/remove/force + +# Add or remove unnecessary paren on 'return' statement +mod_paren_on_return = remove # ignore/add/remove/force + +# Whether to change optional semicolons to real semicolons +mod_pawn_semicolon = false # false/true + +# Add parens on 'while' and 'if' statement around bools +mod_full_paren_if_bool = false # false/true + +# Whether to remove superfluous semicolons +mod_remove_extra_semicolon = false # false/true + +# If a function body exceeds the specified number of newlines and doesn't have a comment after +# the close brace, a comment will be added. +mod_add_long_function_closebrace_comment = 0 # number + +# If a switch body exceeds the specified number of newlines and doesn't have a comment after +# the close brace, a comment will be added. +mod_add_long_switch_closebrace_comment = 0 # number + +# If an #ifdef body exceeds the specified number of newlines and doesn't have a comment after +# the #else, a comment will be added. +mod_add_long_ifdef_endif_comment = 0 # number + +# If an #ifdef or #else body exceeds the specified number of newlines and doesn't have a comment after +# the #endif, a comment will be added. +mod_add_long_ifdef_else_comment = 0 # number + +# If TRUE, will sort consecutive single-line 'import' statements [Java, D] +mod_sort_import = false # false/true + +# If TRUE, will sort consecutive single-line 'using' statements [C#] +mod_sort_using = false # false/true + +# If TRUE, will sort consecutive single-line '#include' statements [C/C++] and '#import' statements [Obj-C] +# This is generally a bad idea, as it may break your code. +mod_sort_include = false # false/true + +# If TRUE, it will move a 'break' that appears after a fully braced 'case' before the close brace. +mod_move_case_break = false # false/true + +# Will add or remove the braces around a fully braced case statement. +# Will only remove the braces if there are no variable declarations in the block. +mod_case_brace = ignore # ignore/add/remove/force + +# If TRUE, it will remove a void 'return;' that appears as the last statement in a function. +mod_remove_empty_return = true # false/true + + +# +# inter-character spacing options +# + +# sp_return_paren = force # "return (1);" vs "return(1);" +sp_sizeof_paren = remove # "sizeof (int)" vs "sizeof(int)" +sp_before_sparen = remove # "if (" vs "if(" +sp_after_sparen = force # "if () {" vs "if (){" +sp_after_cast = force # "(int) a" vs "(int)a" +sp_inside_braces = add # "{ 1 }" vs "{1}" +sp_inside_braces_struct = add # "{ 1 }" vs "{1}" +sp_inside_braces_enum = add # "{ 1 }" vs "{1}" +sp_assign = add +sp_arith = add +sp_bool = add +sp_compare = add +sp_assign = add +sp_after_comma = add +sp_func_def_paren = remove # "int foo (){" vs "int foo(){" +sp_func_call_paren = remove # "foo (" vs "foo(" +sp_func_proto_paren = remove # "int foo ();" vs "int foo();" + +# +# Spacing options +# + +# Add or remove space around arithmetic operator '+', '-', '/', '*', etc +sp_arith = force # ignore/add/remove/force + +# Add or remove space around assignment operator '=', '+=', etc +sp_assign = force # ignore/add/remove/force + +# Add or remove space around assignment operator '=' in a prototype +sp_assign_default = force # ignore/add/remove/force + +# Add or remove space before assignment operator '=', '+=', etc. Overrides sp_assign. +sp_before_assign = force # ignore/add/remove/force + +# Add or remove space after assignment operator '=', '+=', etc. Overrides sp_assign. +sp_after_assign = force # ignore/add/remove/force + +# Add or remove space around assignment '=' in enum +sp_enum_assign = force # ignore/add/remove/force + +# Add or remove space before assignment '=' in enum. Overrides sp_enum_assign. +sp_enum_before_assign = force # ignore/add/remove/force + +# Add or remove space after assignment '=' in enum. Overrides sp_enum_assign. +sp_enum_after_assign = force # ignore/add/remove/force + +# Add or remove space around preprocessor '##' concatenation operator. Default=Add +sp_pp_concat = remove # ignore/add/remove/force + +# Add or remove space after preprocessor '#' stringify operator. Also affects the '#@' charizing operator. Default=Add +sp_pp_stringify = remove # ignore/add/remove/force + +# Add or remove space around boolean operators '&&' and '||' +sp_bool = force # ignore/add/remove/force + +# Add or remove space around compare operator '<', '>', '==', etc +sp_compare = force # ignore/add/remove/force + +# Add or remove space inside '(' and ')' +sp_inside_paren = force # ignore/add/remove/force + +# Add or remove space between nested parens +sp_paren_paren = force # ignore/add/remove/force + +# Whether to balance spaces inside nested parens ??? +sp_balance_nested_parens = false # false/true + +# Add or remove space between ')' and '{' +sp_paren_brace = force # ignore/add/remove/force + +# Add or remove space before pointer star '*' +sp_before_ptr_star = force # ignore/add/remove/force + +# Add or remove space before pointer star '*' that isn't followed by a variable name +# If set to 'ignore', sp_before_ptr_star is used instead. ?????? +sp_before_unnamed_ptr_star = ignore # ignore/add/remove/force + +# Add or remove space between pointer stars '*' +sp_between_ptr_star = remove # ignore/add/remove/force + +# Add or remove space after pointer star '*', if followed by a word. +sp_after_ptr_star = remove # ignore/add/remove/force + +# Add or remove space after a pointer star '*', if followed by a func proto/def. +sp_after_ptr_star_func = remove # ignore/add/remove/force + +# Add or remove space before a pointer star '*', if followed by a func proto/def. +sp_before_ptr_star_func = force # ignore/add/remove/force + +# Add or remove space before a reference sign '&' +sp_before_byref = remove # ignore/add/remove/force + +# Add or remove space before a reference sign '&' that isn't followed by a variable name +# If set to 'ignore', sp_before_byref is used instead. +sp_before_unnamed_byref = remove # ignore/add/remove/force + +# Add or remove space after reference sign '&', if followed by a word. +sp_after_byref = remove # ignore/add/remove/force + +# Add or remove space after a reference sign '&', if followed by a func proto/def. +sp_after_byref_func = remove # ignore/add/remove/force + +# Add or remove space before a reference sign '&', if followed by a func proto/def. +sp_before_byref_func = remove # ignore/add/remove/force + +# Add or remove space between type and word. Default=Force +sp_after_type = force # ignore/add/remove/force + +# Add or remove space in 'template <' vs 'template<'. +# If set to ignore, sp_before_angle is used. +sp_template_angle = remove # ignore/add/remove/force + +# Add or remove space before '<>' +sp_before_angle = ignore # ignore/add/remove/force + +# Add or remove space inside '<' and '>' +sp_inside_angle = ignore # ignore/add/remove/force + +# Add or remove space after '<>' +sp_after_angle = ignore # ignore/add/remove/force + +# Add or remove space between '<>' and '(' as found in 'new List();' +sp_angle_paren = ignore # ignore/add/remove/force + +# Add or remove space between '<>' and a word as in 'List m;' +sp_angle_word = ignore # ignore/add/remove/force + +# Add or remove space between '>' and '>' in '>>' (template stuff C++/C# only). Default=Add +sp_angle_shift = add # ignore/add/remove/force + +# Add or remove space before '(' of 'if', 'for', 'switch', and 'while' +sp_before_sparen = remove # ignore/add/remove/force + +# Add or remove space inside if-condition '(' and ')' +sp_inside_sparen = force # ignore/add/remove/force + +# Add or remove space before if-condition ')'. Overrides sp_inside_sparen. +sp_inside_sparen_close = ignore # ignore/add/remove/force + +# Add or remove space after ')' of 'if', 'for', 'switch', and 'while' +sp_after_sparen = ignore # ignore/add/remove/force + +# Add or remove space between ')' and '{' of 'if', 'for', 'switch', and 'while' +sp_sparen_brace = ignore # ignore/add/remove/force + +# Add or remove space between 'invariant' and '(' in the D language. +sp_invariant_paren = ignore # ignore/add/remove/force + +# Add or remove space after the ')' in 'invariant (C) c' in the D language. +sp_after_invariant_paren = ignore # ignore/add/remove/force + +# Add or remove space before empty statement ';' on 'if', 'for' and 'while' +sp_special_semi = ignore # ignore/add/remove/force + +# Add or remove space before ';'. Default=Remove +sp_before_semi = remove # ignore/add/remove/force + +# Add or remove space before ';' in non-empty 'for' statements +sp_before_semi_for = remove # ignore/add/remove/force + +# Add or remove space before a semicolon of an empty part of a for statement. +sp_before_semi_for_empty = ignore # ignore/add/remove/force + +# Add or remove space after ';', except when followed by a comment. Default=Add +sp_after_semi = add # ignore/add/remove/force + +# Add or remove space after ';' in non-empty 'for' statements. Default=Force +sp_after_semi_for = force # ignore/add/remove/force + +# Add or remove space after the final semicolon of an empty part of a for statement: for ( ; ; ). +sp_after_semi_for_empty = ignore # ignore/add/remove/force + +# Add or remove space before '[' (except '[]') +sp_before_square = remove # ignore/add/remove/force + +# Add or remove space before '[]' +sp_before_squares = remove # ignore/add/remove/force + +# Add or remove space inside '[' and ']' +sp_inside_square = force # ignore/add/remove/force + +# Add or remove space after ',' +sp_after_comma = force # ignore/add/remove/force + +# Add or remove space before ',' +sp_before_comma = remove # ignore/add/remove/force + +# Add or remove space between an open paren and comma: '(,' vs '( ,' +sp_paren_comma = force # ignore/add/remove/force + +# Add or remove space before the variadic '...' when preceded by a non-punctuator +sp_before_ellipsis = force # ignore/add/remove/force + +# Add or remove space after class ':' +sp_after_class_colon = ignore # ignore/add/remove/force + +# Add or remove space before class ':' +sp_before_class_colon = ignore # ignore/add/remove/force + +# Add or remove space before case ':'. Default=Remove +sp_before_case_colon = remove # ignore/add/remove/force + +# Add or remove space between 'operator' and operator sign +sp_after_operator = ignore # ignore/add/remove/force + +# Add or remove space between the operator symbol and the open paren, as in 'operator ++(' +sp_after_operator_sym = ignore # ignore/add/remove/force + +# Add or remove space after C/D cast, i.e. 'cast(int)a' vs 'cast(int) a' or '(int)a' vs '(int) a' +sp_after_cast = force # ignore/add/remove/force + +# Add or remove spaces inside cast parens +sp_inside_paren_cast = force # ignore/add/remove/force + +# Add or remove space between the type and open paren in a C++ cast, i.e. 'int(exp)' vs 'int (exp)' +sp_cpp_cast_paren = force # ignore/add/remove/force + +# Add or remove space between 'sizeof' and '(' +sp_sizeof_paren = remove # ignore/add/remove/force + +# Add or remove space after the tag keyword (Pawn) +sp_after_tag = ignore # ignore/add/remove/force + +# Add or remove space inside enum '{' and '}' +sp_inside_braces_enum = force # ignore/add/remove/force + +# Add or remove space inside struct/union '{' and '}' +sp_inside_braces_struct = force # ignore/add/remove/force + +# Add or remove space inside '{' and '}' +sp_inside_braces = force # ignore/add/remove/force + +# Add or remove space inside '{}' +sp_inside_braces_empty = remove # ignore/add/remove/force + +# Add or remove space between return type and function name +# A minimum of 1 is forced except for pointer return types. +sp_type_func = ignore # ignore/add/remove/force + +# Add or remove space between function name and '(' on function declaration +sp_func_proto_paren = force # ignore/add/remove/force + +# Add or remove space between function name and '(' on function definition +sp_func_def_paren = force # ignore/add/remove/force + +# Add or remove space inside empty function '()' +sp_inside_fparens = remove # ignore/add/remove/force + +# Add or remove space inside function '(' and ')' +sp_inside_fparen = ignore # ignore/add/remove/force + +# Add or remove space between ']' and '(' when part of a function call. +sp_square_fparen = ignore # ignore/add/remove/force + +# Add or remove space between ')' and '{' of function +sp_fparen_brace = ignore # ignore/add/remove/force + +# Add or remove space between function name and '(' on function calls +sp_func_call_paren = ignore # ignore/add/remove/force + +# Add or remove space between function name and '()' on function calls without parameters. +# If set to 'ignore' (the default), sp_func_call_paren is used. +sp_func_call_paren_empty = ignore # ignore/add/remove/force + +# Add or remove space between the user function name and '(' on function calls +# You need to set a keyword to be a user function, like this: 'set func_call_user _' in the config file. +sp_func_call_user_paren = ignore # ignore/add/remove/force + +# Add or remove space between a constructor/destructor and the open paren +sp_func_class_paren = ignore # ignore/add/remove/force + +# Add or remove space between 'return' and '(' +sp_return_paren = ignore # ignore/add/remove/force + +# Add or remove space between '__attribute__' and '(' +sp_attribute_paren = ignore # ignore/add/remove/force + +# Add or remove space between 'defined' and '(' in '#if defined (FOO)' +sp_defined_paren = ignore # ignore/add/remove/force + +# Add or remove space between 'throw' and '(' in 'throw (something)' +sp_throw_paren = ignore # ignore/add/remove/force + +# Add or remove space between macro and value +sp_macro = ignore # ignore/add/remove/force + +# Add or remove space between macro function ')' and value +sp_macro_func = ignore # ignore/add/remove/force + +# Add or remove space between 'else' and '{' if on the same line +sp_else_brace = ignore # ignore/add/remove/force + +# Add or remove space between '}' and 'else' if on the same line +sp_brace_else = ignore # ignore/add/remove/force + +# Add or remove space between '}' and the name of a typedef on the same line +sp_brace_typedef = ignore # ignore/add/remove/force + +# Add or remove space between 'catch' and '{' if on the same line +sp_catch_brace = ignore # ignore/add/remove/force + +# Add or remove space between '}' and 'catch' if on the same line +sp_brace_catch = ignore # ignore/add/remove/force + +# Add or remove space between 'finally' and '{' if on the same line +sp_finally_brace = ignore # ignore/add/remove/force + +# Add or remove space between '}' and 'finally' if on the same line +sp_brace_finally = ignore # ignore/add/remove/force + +# Add or remove space between 'try' and '{' if on the same line +sp_try_brace = ignore # ignore/add/remove/force + +# Add or remove space between get/set and '{' if on the same line +sp_getset_brace = ignore # ignore/add/remove/force + +# Add or remove space before the '::' operator +sp_before_dc = ignore # ignore/add/remove/force + +# Add or remove space after the '::' operator +sp_after_dc = ignore # ignore/add/remove/force + +# Add or remove around the D named array initializer ':' operator +sp_d_array_colon = ignore # ignore/add/remove/force + +# Add or remove space after the '!' (not) operator. Default=Remove +sp_not = remove # ignore/add/remove/force + +# Add or remove space after the '~' (invert) operator. Default=Remove +sp_inv = remove # ignore/add/remove/force + +# Add or remove space after the '&' (address-of) operator. Default=Remove +# This does not affect the spacing after a '&' that is part of a type. +sp_addr = remove # ignore/add/remove/force + +# Add or remove space around the '.' or '->' operators. Default=Remove +sp_member = remove # ignore/add/remove/force + +# Add or remove space after the '*' (dereference) operator. Default=Remove +# This does not affect the spacing after a '*' that is part of a type. +sp_deref = remove # ignore/add/remove/force + +# Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'. Default=Remove +sp_sign = remove # ignore/add/remove/force + +# Add or remove space before or after '++' and '--', as in '(--x)' or 'y++;'. Default=Remove +sp_incdec = remove # ignore/add/remove/force + +# Add or remove space before a backslash-newline at the end of a line. Default=Add +sp_before_nl_cont = add # ignore/add/remove/force + +# Add or remove space after the scope '+' or '-', as in '-(void) foo;' or '+(int) bar;' +sp_after_oc_scope = ignore # ignore/add/remove/force + +# Add or remove space after the colon in message specs +# '-(int) f:(int) x;' vs '-(int) f: (int) x;' +sp_after_oc_colon = ignore # ignore/add/remove/force + +# Add or remove space before the colon in message specs +# '-(int) f: (int) x;' vs '-(int) f : (int) x;' +sp_before_oc_colon = ignore # ignore/add/remove/force + +# Add or remove space after the colon in message specs +# '[object setValue:1];' vs '[object setValue: 1];' +sp_after_send_oc_colon = ignore # ignore/add/remove/force + +# Add or remove space before the colon in message specs +# '[object setValue:1];' vs '[object setValue :1];' +sp_before_send_oc_colon = ignore # ignore/add/remove/force + +# Add or remove space after the (type) in message specs +# '-(int)f: (int) x;' vs '-(int)f: (int)x;' +sp_after_oc_type = ignore # ignore/add/remove/force + +# Add or remove space after the first (type) in message specs +# '-(int) f:(int)x;' vs '-(int)f:(int)x;' +sp_after_oc_return_type = ignore # ignore/add/remove/force + +# Add or remove space between '@selector' and '(' +# '@selector(msgName)' vs '@selector (msgName)' +# Also applies to @protocol() constructs +sp_after_oc_at_sel = ignore # ignore/add/remove/force + +# Add or remove space between '@selector(x)' and the following word +# '@selector(foo) a:' vs '@selector(foo)a:' +sp_after_oc_at_sel_parens = ignore # ignore/add/remove/force + +# Add or remove space inside '@selector' parens +# '@selector(foo)' vs '@selector( foo )' +# Also applies to @protocol() constructs +sp_inside_oc_at_sel_parens = ignore # ignore/add/remove/force + +# Add or remove space before a block pointer caret +# '^int (int arg){...}' vs. ' ^int (int arg){...}' +sp_before_oc_block_caret = ignore # ignore/add/remove/force + +# Add or remove space after a block pointer caret +# '^int (int arg){...}' vs. '^ int (int arg){...}' +sp_after_oc_block_caret = ignore # ignore/add/remove/force + +# Add or remove space around the ':' in 'b ? t : f' +sp_cond_colon = ignore # ignore/add/remove/force + +# Add or remove space around the '?' in 'b ? t : f' +sp_cond_question = ignore # ignore/add/remove/force + +# Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make sense here. +sp_case_label = ignore # ignore/add/remove/force + +# Control the space around the D '..' operator. +sp_range = ignore # ignore/add/remove/force + +# Control the space after the opening of a C++ comment '// A' vs '//A' +sp_cmt_cpp_start = ignore # ignore/add/remove/force + +# Controls the spaces between #else or #endif and a trailing comment +sp_endif_cmt = ignore # ignore/add/remove/force + + +# +# Aligning stuff +# + +align_enum_equ_span = 4 # '=' in enum definition +# align_nl_cont = TRUE +# align_var_def_span = 2 +# align_var_def_inline = TRUE +# align_var_def_star = FALSE +# align_var_def_colon = TRUE +# align_assign_span = 1 +align_struct_init_span = 3 # align stuff in a structure init '= { }' +align_right_cmt_span = 3 +# align_pp_define_span = 8; +# align_pp_define_gap = 4; + +# cmt_star_cont = FALSE + +# indent_brace = 0 + + +# +# Line Splitting options +# + +# Try to limit code width to N number of columns +code_width = 100 # number + +# Whether to fully split long 'for' statements at semi-colons +ls_for_split_full = false # false/true + +# Whether to fully split long function protos/calls at commas +ls_func_split_full = false # false/true diff --git a/harbour/contrib/hbhttpd/core.prg b/harbour/contrib/hbhttpd/core.prg index 1ee9901ad4..5e7eb2b9d7 100644 --- a/harbour/contrib/hbhttpd/core.prg +++ b/harbour/contrib/hbhttpd/core.prg @@ -31,26 +31,26 @@ MEMVAR server, get, post, cookie, session CREATE CLASS UHttpd /* Settings */ - DATA nPort INIT 80 - DATA cBindAddress INIT "0.0.0.0" - DATA bLogAccess INIT {|| NIL } - DATA bLogError INIT {|| NIL } - DATA bTrace INIT {|| NIL } - DATA bIdle INIT {|| NIL } - DATA hMount INIT { => } + VAR nPort INIT 80 + VAR cBindAddress INIT "0.0.0.0" + VAR bLogAccess INIT {|| NIL } + VAR bLogError INIT {|| NIL } + VAR bTrace INIT {|| NIL } + VAR bIdle INIT {|| NIL } + VAR hMount INIT { => } /* Results */ - DATA cError INIT "" + VAR cError INIT "" /* Private */ - DATA hmtxQueue - DATA hmtxLog - DATA hmtxSession + VAR hmtxQueue + VAR hmtxLog + VAR hmtxSession - DATA hListen - DATA aSession + VAR hListen + VAR hSession - DATA lStop + VAR lStop METHOD RUN() METHOD Stop() @@ -89,13 +89,13 @@ METHOD RUN() CLASS UHttpd RETURN .F. ENDIF - IF !hb_socketBind( Self:hListen, { HB_SOCKET_AF_INET, Self:cBindAddress, Self:nPort } ) + IF ! hb_socketBind( Self:hListen, { HB_SOCKET_AF_INET, Self:cBindAddress, Self:nPort } ) Self:cError := "Bind error " + hb_ntos( hb_socketGetError() ) hb_socketClose( Self:hListen ) RETURN .F. ENDIF - IF !hb_socketListen( Self:hListen ) + IF ! hb_socketListen( Self:hListen ) Self:cError := "Listen error " + hb_ntos( hb_socketGetError() ) hb_socketClose( Self:hListen ) RETURN .F. @@ -107,7 +107,7 @@ METHOD RUN() CLASS UHttpd NEXT Self:lStop := .F. - Self:aSession := { => } + Self:hSession := { => } DO WHILE .T. IF Empty( hSocket := hb_socketAccept( Self:hListen,, 1000 ) ) @@ -140,7 +140,7 @@ METHOD RUN() CLASS UHttpd /* End child threads */ hb_mutexLock( Self:hmtxSession ) - HB_HEVAL( Self:aSession, {|k, v| hb_mutexNotify( v[2], NIL ), HB_SYMBOL_UNUSED( k ) } ) + HB_HEVAL( Self:hSession, {|k, v| hb_mutexNotify( v[ 2 ], NIL ), HB_SYMBOL_UNUSED( k ) } ) hb_mutexUnlock( Self:hmtxSession ) AEval( aThreads, {|| hb_mutexNotify( Self:hmtxQueue, NIL ) } ) AEval( aThreads, {|h| hb_threadJoin( h ) } ) @@ -168,7 +168,7 @@ METHOD LogAccess() CLASS UHttpd hb_mutexLock( Self:hmtxLog ) Eval( Self:bLogAccess, ; server[ "REMOTE_ADDR" ] + " - - [" + Right( cDate, 2 ) + "/" + ; - { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }[VAL(SUBSTR(cDate, 5, 2))] + ; + { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }[ VAL( SUBSTR( cDate, 5, 2 ) ) ] + ; "/" + Left( cDate, 4 ) + ":" + cTime + ' +0000] "' + server[ "REQUEST_ALL" ] + '" ' + ; hb_ntos( t_nStatusCode ) + " " + hb_ntos( Len( t_cResult ) ) + ; ' "' + server[ "HTTP_REFERER" ] + '" "' + server[ "HTTP_USER_AGENT" ] + ; @@ -189,8 +189,8 @@ STATIC FUNCTION ProcessConnection( oServer ) EXIT ENDIF - hSocket := aI[1] - cRequest := aI[2] + hSocket := aI[ 1 ] + cRequest := aI[ 2 ] BEGIN SEQUENCE @@ -329,16 +329,16 @@ STATIC FUNCTION ProcessRequest( oServer, hSocket, cBuffer ) ENDIF hb_mutexLock( oServer:hmtxSession ) - IF cSID == NIL .OR. !( cSID $ oServer:aSession ) + IF cSID == NIL .OR. !( cSID $ oServer:hSession ) /* create new session */ cSID := HB_MD5( DToS( Date() ) + Time() + Str( HB_RANDOM(), 15, 12 ) ) hmtx := hb_mutexCreate() - oServer:aSession[ cSID ] := { hb_threadSelf(), hmtx, { => } } + oServer:hSession[ cSID ] := { hb_threadSelf(), hmtx, { => } } // PRIVATE - session := oServer:aSession[ cSID, 3 ] + session := oServer:hSession[ cSID, 3 ] hb_mutexUnlock( oServer:hmtxSession ) @@ -372,7 +372,7 @@ STATIC FUNCTION ProcessRequest( oServer, hSocket, cBuffer ) IF t_lSessionDestroy /* Destroy session before closing socket, since graceful close requires some time */ hb_mutexLock( oServer:hmtxSession ) - HB_HDel( oServer:aSession, cSID ) + HB_HDel( oServer:hSession, cSID ) hb_mutexUnlock( oServer:hmtxSession ) ENDIF @@ -392,19 +392,19 @@ STATIC FUNCTION ProcessRequest( oServer, hSocket, cBuffer ) IF ! hb_mutexSubscribe( hmtx, SESSION_TIMEOUT, @aData ) .OR. aData == NIL Eval( oServer:bTrace, "Session exit" ) hb_mutexLock( oServer:hmtxSession ) - HB_HDel( oServer:aSession, cSID ) + HB_HDel( oServer:hSession, cSID ) hb_mutexUnlock( oServer:hmtxSession ) EXIT ENDIF - hSocket := aData[1] - cBuffer := aData[2] - bEval := aData[3] - cPath := aData[4] - server := aData[5] - get := aData[6] - post := aData[7] - cookie := aData[8] - session := aData[9] + hSocket := aData[ 1 ] + cBuffer := aData[ 2 ] + bEval := aData[ 3 ] + cPath := aData[ 4 ] + server := aData[ 5 ] + get := aData[ 6 ] + post := aData[ 7 ] + cookie := aData[ 8 ] + session := aData[ 9 ] aData := NIL ENDDO @@ -418,7 +418,7 @@ STATIC FUNCTION ProcessRequest( oServer, hSocket, cBuffer ) ELSE /* session already exists */ Eval( oServer:bTrace, "session pries", server[ "SCRIPT_NAME" ] ) - hb_mutexNotify( oServer:aSession[cSID, 2], { hSocket, cBuffer, oServer:hMount[cMount, 1], cPath, server, get, post, cookie, oServer:aSession[cSID, 3] } ) + hb_mutexNotify( oServer:hSession[ cSID, 2 ], { hSocket, cBuffer, oServer:hMount[ cMount, 1 ], cPath, server, get, post, cookie, oServer:hSession[ cSID, 3 ] } ) hb_mutexUnlock( oServer:hmtxSession ) ENDIF @@ -442,17 +442,17 @@ STATIC FUNCTION ParseRequestHeader( cRequest ) LOCAL aRequest, aLine, nI, nJ, cI, nK, nContentLength := 0 aRequest := uhttpd_split( CR_LF, cRequest ) - aLine := uhttpd_split( " ", aRequest[1] ) + aLine := uhttpd_split( " ", aRequest[ 1 ] ) - server[ "REQUEST_ALL" ] := aRequest[1] - IF Len( aLine ) == 3 .AND. Left( aLine[3], 5 ) == "HTTP/" - server[ "REQUEST_METHOD" ] := aLine[1] - server[ "REQUEST_URI" ] := aLine[2] - server[ "SERVER_PROTOCOL" ] := aLine[3] + server[ "REQUEST_ALL" ] := aRequest[ 1 ] + IF Len( aLine ) == 3 .AND. Left( aLine[ 3 ], 5 ) == "HTTP/" + server[ "REQUEST_METHOD" ] := aLine[ 1 ] + server[ "REQUEST_URI" ] := aLine[ 2 ] + server[ "SERVER_PROTOCOL" ] := aLine[ 3 ] ELSE - server[ "REQUEST_METHOD" ] := aLine[1] - server[ "REQUEST_URI" ] := iif( Len( aLine ) >= 2, aLine[2], "" ) - server[ "SERVER_PROTOCOL" ] := iif( Len( aLine ) >= 3, aLine[3], "" ) + server[ "REQUEST_METHOD" ] := aLine[ 1 ] + server[ "REQUEST_URI" ] := iif( Len( aLine ) >= 2, aLine[ 2 ], "" ) + server[ "SERVER_PROTOCOL" ] := iif( Len( aLine ) >= 3, aLine[ 3 ], "" ) RETURN 0 ENDIF @@ -481,11 +481,11 @@ STATIC FUNCTION ParseRequestHeader( cRequest ) server[ "HTTP_CONTENT_TYPE" ] := "" FOR nI := 2 TO Len( aRequest ) - IF aRequest[nI] == "" + IF aRequest[ nI ] == "" EXIT - ELSEIF ( nJ := At( ":", aRequest[nI] ) ) > 0 - cI := AllTrim( SubStr( aRequest[nI], nJ + 1 ) ) - SWITCH Upper( Left( aRequest[nI], nJ - 1 ) ) + ELSEIF ( nJ := At( ":", aRequest[ nI ] ) ) > 0 + cI := AllTrim( SubStr( aRequest[ nI ], nJ + 1 ) ) + SWITCH Upper( Left( aRequest[ nI ], nJ - 1 ) ) CASE "COOKIE" IF ( nK := At( ";", cI ) ) == 0 nK := Len( RTrim( cI ) ) @@ -500,7 +500,7 @@ STATIC FUNCTION ParseRequestHeader( cRequest ) nContentLength := Val( cI ) EXIT OTHERWISE - server[ "HTTP_" + STRTRAN( UPPER( LEFT( aRequest[nI], nJ - 1 ) ), "-", "_" ) ] := cI + server[ "HTTP_" + STRTRAN( UPPER( LEFT( aRequest[ nI ], nJ - 1 ) ), "-", "_" ) ] := cI EXIT ENDSWITCH ENDIF @@ -508,9 +508,9 @@ STATIC FUNCTION ParseRequestHeader( cRequest ) IF !( server[ "QUERY_STRING" ] == "" ) FOR EACH cI IN uhttpd_split( "&", server[ "QUERY_STRING" ] ) IF ( nI := At( "=", cI ) ) > 0 - get[UUrlDecode(LEFT(cI, nI - 1))] := UUrlDecode( SubStr( cI, nI + 1 ) ) + get[ UUrlDecode( LEFT( cI, nI - 1 ) ) ] := UUrlDecode( SubStr( cI, nI + 1 ) ) ELSE - get[UUrlDecode(cI)] := NIL + get[ UUrlDecode( cI ) ] := NIL ENDIF NEXT ENDIF @@ -525,9 +525,9 @@ STATIC FUNCTION ParseRequestBody( cRequest ) IF server[ "HTTP_CONTENT_TYPE" ] == "application/x-www-form-urlencoded" FOR EACH cPart IN uhttpd_split( "&", cRequest ) IF ( nI := At( "=", cPart ) ) > 0 - post[UUrlDecode(LEFT(cPart, nI - 1))] := UUrlDecode( SubStr( cPart, nI + 1 ) ) + post[ UUrlDecode( LEFT( cPart, nI - 1 ) ) ] := UUrlDecode( SubStr( cPart, nI + 1 ) ) ELSE - post[UUrlDecode(cPart)] := NIL + post[ UUrlDecode( cPart ) ] := NIL ENDIF NEXT ENDIF @@ -605,7 +605,7 @@ STATIC FUNCTION MakeResponse( oServer ) ENDSWITCH cRet += CR_LF UAddHeader( "Content-Length", hb_ntos( Len( t_cResult ) ) ) - AEval( t_aHeader, {|x| cRet += x[1] + ": " + x[2] + CR_LF } ) + AEval( t_aHeader, {|x| cRet += x[ 1 ] + ": " + x[ 2 ] + CR_LF } ) cRet += CR_LF Eval( oServer:bTrace, cRet ) cRet += t_cResult @@ -634,9 +634,9 @@ STATIC PROCEDURE SendResponse( oServer, hSocket ) STATIC FUNCTION HttpDateFormat( tDate ) - RETURN { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }[DOW(tDate)] + ", " + ; + RETURN { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }[ DOW( tDate ) ] + ", " + ; PadL( Day( tDate ), 2, "0" ) + " " + ; - { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }[MONTH(tDate)] + ; + { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }[ MONTH( tDate ) ] + ; " " + PadL( Year( tDate ), 4, "0" ) + HB_TTOC( tDate, "", "HH:MM:SS" ) + " GMT" // TOFIX: time zone STATIC FUNCTION HttpDateUnformat( cDate, tDate ) @@ -776,8 +776,8 @@ FUNCTION UGetHeader( cType ) LOCAL nI - IF ( nI := ASCAN( t_aHeader, {|x| Upper(x[1] ) == Upper(cType ) } ) ) > 0 - RETURN t_aHeader[nI, 2] + IF ( nI := ASCAN( t_aHeader, {|x| Upper( x[ 1 ] ) == Upper( cType ) } ) ) > 0 + RETURN t_aHeader[ nI, 2 ] ENDIF RETURN NIL @@ -786,8 +786,8 @@ PROCEDURE UAddHeader( cType, cValue ) LOCAL nI - IF ( nI := ASCAN( t_aHeader, {|x| Upper(x[1] ) == Upper(cType ) } ) ) > 0 - t_aHeader[nI, 2] := cValue + IF ( nI := ASCAN( t_aHeader, {|x| Upper( x[ 1 ] ) == Upper( cType ) } ) ) > 0 + t_aHeader[ nI, 2 ] := cValue ELSE AAdd( t_aHeader, { cType, cValue } ) ENDIF @@ -982,18 +982,18 @@ PROCEDURE UProcFiles( cFileName, lIndex ) aDir := Directory( UOsFileName( cFileName ), "D" ) IF "s" $ get IF get[ "s" ] == "s" - ASort( aDir, , , {|X, Y| iif( X[5] == "D", iif(Y[5] == "D", X[1] < Y[1], .T. ), ; - iif( Y[5] == "D", .F. , X[2] < Y[2] ) ) } ) + ASort( aDir, , , {|X, Y| iif( X[ 5 ] == "D", iif( Y[ 5 ] == "D", X[ 1 ] < Y[ 1 ], .T. ), ; + iif( Y[ 5 ] == "D", .F. , X[ 2 ] < Y[ 2 ] ) ) } ) ELSEIF get[ "s" ] == "m" - ASort( aDir, , , {|X, Y| iif( X[5] == "D", iif(Y[5] == "D", X[1] < Y[1], .T. ), ; - iif( Y[5] == "D", .F. , DToS( X[3] ) + X[4] < DToS( Y[3] ) + Y[4] ) ) } ) + ASort( aDir, , , {|X, Y| iif( X[ 5 ] == "D", iif( Y[ 5 ] == "D", X[ 1 ] < Y[ 1 ], .T. ), ; + iif( Y[ 5 ] == "D", .F. , DToS( X[ 3 ] ) + X[ 4 ] < DToS( Y[ 3 ] ) + Y[ 4 ] ) ) } ) ELSE - ASort( aDir, , , {|X, Y| iif( X[5] == "D", iif(Y[5] == "D", X[1] < Y[1], .T. ), ; - iif( Y[5] == "D", .F. , X[1] < Y[1] ) ) } ) + ASort( aDir, , , {|X, Y| iif( X[ 5 ] == "D", iif( Y[ 5 ] == "D", X[ 1 ] < Y[ 1 ], .T. ), ; + iif( Y[ 5 ] == "D", .F. , X[ 1 ] < Y[ 1 ] ) ) } ) ENDIF ELSE - ASort( aDir, , , {|X, Y| iif( X[5] == "D", iif(Y[5] == "D", X[1] < Y[1], .T. ), ; - iif( Y[5] == "D", .F. , X[1] < Y[1] ) ) } ) + ASort( aDir, , , {|X, Y| iif( X[ 5 ] == "D", iif( Y[ 5 ] == "D", X[ 1 ] < Y[ 1 ], .T. ), ; + iif( Y[ 5 ] == "D", .F. , X[ 1 ] < Y[ 1 ] ) ) } ) ENDIF UWrite( '

Index of ' + server[ "SCRIPT_NAME" ] + '

      ' )
@@ -1001,13 +1001,13 @@ PROCEDURE UProcFiles( cFileName, lIndex )
       UWrite( 'Modified             ' )
       UWrite( 'Size' + CR_LF + '
' ) FOR EACH aF IN aDir - IF Left( aF[1], 1 ) == "." - ELSEIF "D" $ aF[5] - UWrite( '[DIR] ' + aF[1] + '' + Space( 50 - Len(aF[1] ) ) + ; - DToC( aF[3] ) + ' ' + aF[4] + CR_LF ) + IF Left( aF[ 1 ], 1 ) == "." + ELSEIF "D" $ aF[ 5 ] + UWrite( '[DIR] ' + aF[ 1 ] + '' + Space( 50 - Len( aF[ 1 ] ) ) + ; + DToC( aF[ 3 ] ) + ' ' + aF[ 4 ] + CR_LF ) ELSE - UWrite( ' ' + aF[1] + '' + Space( 50 - Len(aF[1] ) ) + ; - DToC( aF[3] ) + ' ' + aF[4] + Str( aF[2], 12 ) + CR_LF ) + UWrite( ' ' + aF[ 1 ] + '' + Space( 50 - Len( aF[ 1 ] ) ) + ; + DToC( aF[ 3 ] ) + ' ' + aF[ 4 ] + Str( aF[ 2 ], 12 ) + CR_LF ) ENDIF NEXT UWrite( "
" ) @@ -1083,7 +1083,7 @@ FUNCTION uhttpd_join( cSeparator, aData ) IF ValType( aData[ nI ] ) $ "CM" ; cRet += aData[ nI ] ELSEIF ValType( aData[ nI ] ) == "N" ; cRet += hb_ntos( aData[ nI ] ) - ELSEIF ValType( aData[ nI ] ) == "D" ; cRet += iif( ! Empty( aData[ nI ] ), DToC( aData[ nI ] ), "" ) + ELSEIF ValType( aData[ nI ] ) == "D" ; cRet += iif( Empty( aData[ nI ] ), "", DToC( aData[ nI ] ) ) ELSE ENDIF NEXT diff --git a/harbour/contrib/hbhttpd/widgets.prg b/harbour/contrib/hbhttpd/widgets.prg index af250fc0e7..2c7ceccd06 100644 --- a/harbour/contrib/hbhttpd/widgets.prg +++ b/harbour/contrib/hbhttpd/widgets.prg @@ -12,7 +12,7 @@ MEMVAR session, server, get, post CREATE CLASS UWMain - DATA aChilds INIT {} + VAR aChilds INIT {} METHOD Add( oWidget ) METHOD Paint() @@ -48,7 +48,7 @@ METHOD Add( oWidget ) CLASS UWMain CREATE CLASS UWLayoutGrid - DATA aChilds INIT { { {} } } // {{{}}, {{}}} ; {{{}, {}}} + VAR aChilds INIT { { {} } } // {{{}}, {{}}} ; {{{}, {}}} METHOD Add( oWidget, nRow, nCol ) METHOD Paint() @@ -105,7 +105,7 @@ METHOD Add( oWidget, nRow, nCol ) CLASS UWLayoutGrid CREATE CLASS UWHtml - DATA cText + VAR cText METHOD Paint() @@ -129,9 +129,9 @@ METHOD Paint() CLASS UWHtml CREATE CLASS UWLabel - DATA cText - DATA cID - DATA cStyle + VAR cText + VAR cID + VAR cStyle METHOD Paint() @@ -159,9 +159,9 @@ METHOD Paint() CLASS UWLabel CREATE CLASS UWForm - DATA cAction - DATA cMethod INIT "POST" - DATA aChilds INIT {} + VAR cAction + VAR cMethod INIT "POST" + VAR aChilds INIT {} METHOD Add( oWidget ) METHOD Paint() @@ -194,10 +194,10 @@ METHOD Paint() CLASS UWForm CREATE CLASS UWInput - DATA cName - DATA cValue - DATA cID - DATA cStyle + VAR cName + VAR cValue + VAR cID + VAR cStyle METHOD Paint() @@ -225,8 +225,8 @@ METHOD Paint() CLASS UWInput CREATE CLASS UWPassword - DATA cName - DATA cValue + VAR cName + VAR cValue METHOD Paint() @@ -251,8 +251,8 @@ METHOD Paint() CLASS UWPassword CREATE CLASS UWSubmit - DATA cName - DATA cValue + VAR cName + VAR cValue METHOD Paint() @@ -298,7 +298,7 @@ METHOD Paint() CLASS UWSeparator CREATE CLASS UWMenu - DATA aItems INIT {} + VAR aItems INIT {} METHOD AddItem( cTitle, cLink ) METHOD Paint() @@ -336,13 +336,13 @@ METHOD Paint() CLASS UWMenu CREATE CLASS UWBrowse - DATA cID - DATA aColumns INIT {} - DATA nArea + VAR cID + VAR aColumns INIT {} + VAR nArea - DATA nRecno - DATA lBof INIT .F. - DATA lEof INIT .F. + VAR nRecno + VAR lBof INIT .F. + VAR lEof INIT .F. METHOD AddColumn( nID, cTitle, cField, lRaw ) METHOD Paint() diff --git a/harbour/contrib/hbtip/url.prg b/harbour/contrib/hbtip/url.prg index 1c2f7eaccc..14ff49cc9a 100644 --- a/harbour/contrib/hbtip/url.prg +++ b/harbour/contrib/hbtip/url.prg @@ -96,7 +96,7 @@ METHOD New( cUrl ) CLASS tURL METHOD SetAddress( cUrl ) CLASS tURL LOCAL aMatch, cServer, cPath - ::cAddress := "" + ::cAddress := cUrl ::cProto := "" ::cUserid := "" ::cPassword := "" diff --git a/harbour/contrib/rddbm/bmdbfcdx.c b/harbour/contrib/rddbm/bmdbfcdx.c index 53fa37e447..31d28c6e70 100644 --- a/harbour/contrib/rddbm/bmdbfcdx.c +++ b/harbour/contrib/rddbm/bmdbfcdx.c @@ -787,7 +787,7 @@ static void hb_bmRddInit( void * cargo ) #if defined( HB_BMDBFNSX ) HB_INIT_SYMBOLS_BEGIN( bmap1__InitSymbols ) -{ "BM" _HB_PARENT_RDD, {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( BMDBFNSX )}, NULL }, +{ "BM" _HB_PARENT_RDD, {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( BMDBFNSX )}, NULL }, { "BM" _HB_PARENT_RDD "_GETFUNCTABLE", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( _GETFUNCTABLE )}, NULL } HB_INIT_SYMBOLS_END( bmap1__InitSymbols ) diff --git a/harbour/contrib/rddbm/rddbmcdx.hbc b/harbour/contrib/rddbm/rddbm.hbc similarity index 100% rename from harbour/contrib/rddbm/rddbmcdx.hbc rename to harbour/contrib/rddbm/rddbm.hbc diff --git a/harbour/contrib/rddbm/rddbmcdx.hbp b/harbour/contrib/rddbm/rddbm.hbp similarity index 100% rename from harbour/contrib/rddbm/rddbmcdx.hbp rename to harbour/contrib/rddbm/rddbm.hbp diff --git a/harbour/contrib/sddoci/sddoci.hbp b/harbour/contrib/sddoci/sddoci.hbp index a58ff11941..1f3de52139 100644 --- a/harbour/contrib/sddoci/sddoci.hbp +++ b/harbour/contrib/sddoci/sddoci.hbp @@ -18,9 +18,12 @@ -depcontrol=ocilib:${HB_WITH_OCILIB} -depincpath=ocilib:/usr/include -depincpath=ocilib:/usr/local/include --depimplibs=ocilib:../lib32/ociliba.dll --depimplibs=ocilib:../lib32/ocilibm.dll --depimplibs=ocilib:../lib32/ocilibw.dll +-depimplibs=ocilib:../lib32/ociliba.dll{win&x86} +-depimplibs=ocilib:../lib32/ocilibm.dll{win&x86} +-depimplibs=ocilib:../lib32/ocilibw.dll{win&x86} +-depimplibs=ocilib:../lib64/ociliba.dll{win&x86_64} +-depimplibs=ocilib:../lib64/ocilibm.dll{win&x86_64} +-depimplibs=ocilib:../lib64/ocilibw.dll{win&x86_64} # Using prebuilt static libs with MinGW -cflag=-DOCI_API=_stdcall{mingw} diff --git a/harbour/package/winuni/RELNOTES b/harbour/package/winuni/RELNOTES index 6e891740fc..1eed7d51a0 100644 --- a/harbour/package/winuni/RELNOTES +++ b/harbour/package/winuni/RELNOTES @@ -63,7 +63,7 @@ Tool/lib versions used to create this package: FreeImage 3.13.1 GD 2.0.35 MySQL 5.1.41 - OCILIB 3.7.0 + OCILIB 3.8.0 OpenSSL 1.0.0a PostgreSQL 9.0.1 QT 4.7.0 diff --git a/harbour/src/codepage/cpsk852.c b/harbour/src/codepage/cpsk852.c index c3744d0933..2d02e772de 100644 --- a/harbour/src/codepage/cpsk852.c +++ b/harbour/src/codepage/cpsk852.c @@ -15,9 +15,9 @@ #define HB_CP_ID SK852 #define HB_CP_INFO "Slovak CP-852" #define HB_CP_UNITB HB_UNITB_852 -#define HB_CP_ACSORT HB_CDP_ACSORT_NONE -#define HB_CP_UPPER "ABCDEFGHIJKLMNO♊PQRSTUޚVWXYZ" -#define HB_CP_LOWER "abcde؉fghijklmnopqrstuvwxyz" +#define HB_CP_ACSORT HB_CDP_ACSORT_INTERLEAVED +#define HB_CP_UPPER "ABCD.DZ..D.EFGH.CH.IJKLMNO♊PQRSTUޚVWXYZ" +#define HB_CP_LOWER "abcd.dz..d.e؉fgh.ch.ijklmnopqrstuvwxyz" /* include CP registration code */ #include "hbcdpreg.h" diff --git a/harbour/src/codepage/cpskiso.c b/harbour/src/codepage/cpskiso.c index d18ca1595c..bbeafc52ab 100644 --- a/harbour/src/codepage/cpskiso.c +++ b/harbour/src/codepage/cpskiso.c @@ -15,9 +15,9 @@ #define HB_CP_ID SKISO #define HB_CP_INFO "Slovak ISO-8859-2" #define HB_CP_UNITB HB_UNITB_8859_2 -#define HB_CP_ACSORT HB_CDP_ACSORT_NONE -#define HB_CP_UPPER "ABCDEFGHIJKLťMNOPQRSTUVWXYZ" -#define HB_CP_LOWER "abcdefghijklmnopqrstuvwxyz" +#define HB_CP_ACSORT HB_CDP_ACSORT_INTERLEAVED +#define HB_CP_UPPER "ABCD.DZ..D.EFGH.CH.IJKLťMNOPQRSTUVWXYZ" +#define HB_CP_LOWER "abcd.dz..d.efgh.ch.ijklmnopqrstuvwxyz" /* include CP registration code */ #include "hbcdpreg.h" diff --git a/harbour/src/codepage/cpskwin.c b/harbour/src/codepage/cpskwin.c index 1f1dfb2687..b38fd317f4 100644 --- a/harbour/src/codepage/cpskwin.c +++ b/harbour/src/codepage/cpskwin.c @@ -16,8 +16,8 @@ #define HB_CP_INFO "Slovak Windows-1250" #define HB_CP_UNITB HB_UNITB_1250 #define HB_CP_ACSORT HB_CDP_ACSORT_NONE -#define HB_CP_UPPER "ABCDEFGHIJKLżMNOPQRSTUVWXYZ" -#define HB_CP_LOWER "abcdefghijklmnopqrstuvwxyz" +#define HB_CP_UPPER "ABCD.DZ..D.EFGH.CH.IJKLżMNOPQRSTUVWXYZ" +#define HB_CP_LOWER "abcd.dz..d.efgh.ch.ijklmnopqrstuvwxyz" /* include CP registration code */ #include "hbcdpreg.h"