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.
This commit is contained in:
Viktor Szakats
2010-11-28 09:44:40 +00:00
parent ac04b93c7a
commit ce4b9a2fc2
13 changed files with 741 additions and 114 deletions

View File

@@ -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

579
harbour/config/hbc.cfg Normal file
View File

@@ -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<byte>();'
sp_angle_paren = ignore # ignore/add/remove/force
# Add or remove space between '<>' and a word as in 'List<byte> 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 ( ; ; <here> ).
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

View File

@@ -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( '<html><body><h1>Index of ' + server[ "SCRIPT_NAME" ] + '</h1><pre> ' )
@@ -1001,13 +1001,13 @@ PROCEDURE UProcFiles( cFileName, lIndex )
UWrite( '<a href="?s=m">Modified</a> ' )
UWrite( '<a href="?s=s">Size</a>' + CR_LF + '<hr>' )
FOR EACH aF IN aDir
IF Left( aF[1], 1 ) == "."
ELSEIF "D" $ aF[5]
UWrite( '[DIR] <a href="' + aF[1] + '/">' + aF[1] + '</a>' + Space( 50 - Len(aF[1] ) ) + ;
DToC( aF[3] ) + ' ' + aF[4] + CR_LF )
IF Left( aF[ 1 ], 1 ) == "."
ELSEIF "D" $ aF[ 5 ]
UWrite( '[DIR] <a href="' + aF[ 1 ] + '/">' + aF[ 1 ] + '</a>' + Space( 50 - Len( aF[ 1 ] ) ) + ;
DToC( aF[ 3 ] ) + ' ' + aF[ 4 ] + CR_LF )
ELSE
UWrite( ' <a href="' + aF[1] + '">' + aF[1] + '</a>' + Space( 50 - Len(aF[1] ) ) + ;
DToC( aF[3] ) + ' ' + aF[4] + Str( aF[2], 12 ) + CR_LF )
UWrite( ' <a href="' + aF[ 1 ] + '">' + aF[ 1 ] + '</a>' + Space( 50 - Len( aF[ 1 ] ) ) + ;
DToC( aF[ 3 ] ) + ' ' + aF[ 4 ] + Str( aF[ 2 ], 12 ) + CR_LF )
ENDIF
NEXT
UWrite( "<hr></pre></body></html>" )
@@ -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

View File

@@ -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()

View File

@@ -96,7 +96,7 @@ METHOD New( cUrl ) CLASS tURL
METHOD SetAddress( cUrl ) CLASS tURL
LOCAL aMatch, cServer, cPath
::cAddress := ""
::cAddress := cUrl
::cProto := ""
::cUserid := ""
::cPassword := ""

View File

@@ -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 )

View File

@@ -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}

View File

@@ -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

View File

@@ -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 "AµŽBC¬DÒE<C392>·ÓFGHIÖJKL•MNÕOà♊PQRèüSæTUéÞšëVWXYíZ¦"
#define HB_CP_LOWER "a „bcŸdÔe؉fghi¡jklmnåo¢“”pqrêýsçtœu£…<C2A3>ûvwxyìz§"
#define HB_CP_ACSORT HB_CDP_ACSORT_INTERLEAVED
#define HB_CP_UPPER "AµŽBC¬DÒ.DZ..D¦.E<EFBFBD>·ÓFGH.CH.IÖJKL•MNÕOà♊PQRèüSæTUéÞšëVWXYíZ¦"
#define HB_CP_LOWER "a „bcŸdÔ.dz..d§.e؉fgh.ch.i¡jklmnåo¢“”pqrêýsçtœu£…<EFBFBD>ûvwxyìz§"
/* include CP registration code */
#include "hbcdpreg.h"

View File

@@ -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 "AÁÄBCÈDÏEÉÌËFGHIÍJKLÅ¥MNÒOÓÔÖÕPQRÀØS©T«UÚÙÜÛVWXYÝZ®"
#define HB_CP_LOWER "aáäbcèdïeéìëfghiíjklåµmnòoóôöõpqràøs¹t»uúùüûvwxyýz¾"
#define HB_CP_ACSORT HB_CDP_ACSORT_INTERLEAVED
#define HB_CP_UPPER "AÁÄBCÈDÏ.DZ..D®.EÉÌËFGH.CH.IÍJKLÅ¥MNÒOÓÔÖÕPQRÀØS©T«UÚÙÜÛVWXYÝZ®"
#define HB_CP_LOWER "aáäbcèdï.dz..d¾.eéìëfgh.ch.iíjklåµmnòoóôöõpqràøs¹t»uúùüûvwxyýz¾"
/* include CP registration code */
#include "hbcdpreg.h"

View File

@@ -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 "AÁÄBCÈDÏEÉÌËFGHIÍJKLżMNÒOÓÔÖÕPQRÀØSŠT<C5A0>UÚÙÜÛVWXYÝZŽ"
#define HB_CP_LOWER "aáäbcèdïeéìëfghiíjklå¾mnòoóôöõpqràøsšt<C5A1>uúùüûvwxyýzž"
#define HB_CP_UPPER "AÁÄBCÈDÏ.DZ..DŽ.EÉÌËFGH.CH.IÍJKLżMNÒOÓÔÖÕPQRÀØSŠT<EFBFBD>UÚÙÜÛVWXYÝZŽ"
#define HB_CP_LOWER "aáäbcèdï.dz..dž.eéìëfgh.ch.iíjklå¾mnòoóôöõpqràøsšt<EFBFBD>uúùüûvwxyýzž"
/* include CP registration code */
#include "hbcdpreg.h"