Before i never saw this error.
The error message is: "String delimiter mismatch"
And the code where i have the error is:
function MaskStrings(masked, origin, JSstring)local success;
, RegexStringStart;
, matchesObj, matchObj, v, c, s, o, nsuccess = true
RegexStringStart = m.this.RegexStringStart
do case
case !ga_Type_IsChar(@m.origin)
assert false
success = false
GA_ERROR_FUNCTION_ARGUMENT_INCORRECT
otherwiseJSstring = ga_Type_IsLogical(m.JSstring) and m.JSstring
masked = m.origindo while m.success ;
and m.RegexStringStart.GetMatches(@m.matchesObj, m.masked) ;
and m.matchesObj.Count > 0 && 0 ou 1 car le pattern est !global
*!* if m.matchesObj.Count <> 1 && thn 2014-09-02 - cas impossible
*!* assert false
*!* success = false
*!* exit
*!* endif
matchObj = m.matchesObj.Item(0)
v = m.matchObj.Value
c = iif(m.v == '[', ']', m.v)
s = substrc(m.masked, m.matchObj.FirstIndex+2) && FirstIndex is 0-based
o = 1
do while .T.
n = at_c(m.c, m.s, m.o)
if .F.;
or m.n <= 1;
or !(m.JSstring and Substrc(m.s, m.n-1, 1) == '\') && Substrc('toto', 0, 1) fonctionne
exit
else
o = m.o + 1
endif
enddo
if Empty(m.n)
assert false message [String delimiter mismatch]
->->-> success = false && THIS IS THE LINE WHERE DEBUG IS POSITIONED
exit
else
n = 1 + m.n && include start delimiter
masked = stuffc( ;
m.masked, ;
m.matchObj.FirstIndex+1, ; && FirstIndex is 0-based
m.n, ;
replicate('~', m.n) ;
)endif
enddo
endcase
return m.success
endfunc
1/ this is a simple Assert; not exactly an error, probably an incorrect parameter
2/ When the error occurs, what do you have in each of the 3 parameters?
Thanks,
I have an error while compiling my app with 2.20
Before i never saw this error.
The error message is: "String delimiter mismatch"
And the code where i have the error is:
function MaskStrings(masked, origin, JSstring)local success;
, RegexStringStart;
, matchesObj, matchObj, v, c, s, o, nsuccess = true
RegexStringStart = m.this.RegexStringStart
do case
case !ga_Type_IsChar(@m.origin)
assert false
success = false
GA_ERROR_FUNCTION_ARGUMENT_INCORRECT
otherwiseJSstring = ga_Type_IsLogical(m.JSstring) and m.JSstring
masked = m.origindo while m.success ;
and m.RegexStringStart.GetMatches(@m.matchesObj, m.masked) ;
and m.matchesObj.Count > 0 && 0 ou 1 car le pattern est !global
*!* if m.matchesObj.Count <> 1 && thn 2014-09-02 - cas impossible
*!* assert false
*!* success = false
*!* exit
*!* endif
matchObj = m.matchesObj.Item(0)
v = m.matchObj.Value
c = iif(m.v == '[', ']', m.v)
s = substrc(m.masked, m.matchObj.FirstIndex+2) && FirstIndex is 0-based
o = 1
do while .T.
n = at_c(m.c, m.s, m.o)
if .F.;
or m.n <= 1;
or !(m.JSstring and Substrc(m.s, m.n-1, 1) == '\') && Substrc('toto', 0, 1) fonctionne
exit
else
o = m.o + 1
endif
enddo
if Empty(m.n)
assert false message [String delimiter mismatch]
->->-> success = false && THIS IS THE LINE WHERE DEBUG IS POSITIONED
exit
else
n = 1 + m.n && include start delimiter
masked = stuffc( ;
m.masked, ;
m.matchObj.FirstIndex+1, ; && FirstIndex is 0-based
m.n, ;
replicate('~', m.n) ;
)endif
enddo
endcase
return m.success
endfunc
-- thn (FoxInCloud)
masked = "new CalendarDateSelect( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) /* {en} event or event source object {fr} événement ou son objet source */ , ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /* {en} id of HTML object {fr} id HTML de l~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
origin = " new CalendarDateSelect( $('_form_agenda-_commandbutton4_hidden') , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $('_form_agenda-_commandbutton4') /* {en} event or event source object {fr} événement ou son objet source */ , '_form_agenda-_commandbutton4' /* {en} id of HTML object {fr} id HTML de l'objet détenant la méthode */ , 'wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
JSstring = .F.
The function that calls maskstrings() is this:
function cStringsMasked && {} Chaîne où les litteraux caractères sont masqués par _ga_StringParseBits_Class_.maskStrings()
lparameters tcChain, result && in: .T. for JavaScript string, @out: .T. if success, else ga_StringParse_Object() instantiation result
local loParser, cResultreturn Iif(.T.;
and ga_Type_IsChar(m.tcChain, .T.);
and (.F.;
or ga_StringParse_Object(@m.loParser); && modify command abGA
or cResultAdd(@m.result, GA_STRINGPARSE_CLASS + [ class instantiation failed!]);
);
and (!lTrue(m.result) or varSet(@m.tcChain, Strtran(Strtran(m.tcChain, '\"'), "\'")));
and varSet(@m.result, m.loParser.maskStrings(@m.cResult, m.tcChain)); && modify command abGA
and m.result;
, m.cResult;
, m.tcChain;
)
endfunc
Ciao Michele,
1/ this is a simple Assert; not exactly an error, probably an incorrect parameter
2/ When the error occurs, what do you have in each of the 3 parameters?
Thanks,
I have an error while compiling my app with 2.20
Before i never saw this error.
The error message is: "String delimiter mismatch"
And the code where i have the error is:
function MaskStrings(masked, origin, JSstring)local success;
, RegexStringStart;
, matchesObj, matchObj, v, c, s, o, nsuccess = true
RegexStringStart = m.this.RegexStringStart
do case
case !ga_Type_IsChar(@m.origin)
assert false
success = false
GA_ERROR_FUNCTION_ARGUMENT_INCORRECT
otherwiseJSstring = ga_Type_IsLogical(m.JSstring) and m.JSstring
masked = m.origindo while m.success ;
and m.RegexStringStart.GetMatches(@m.matchesObj, m.masked) ;
and m.matchesObj.Count > 0 && 0 ou 1 car le pattern est !global
*!* if m.matchesObj.Count <> 1 && thn 2014-09-02 - cas impossible
*!* assert false
*!* success = false
*!* exit
*!* endif
matchObj = m.matchesObj.Item(0)
v = m.matchObj.Value
c = iif(m.v == '[', ']', m.v)
s = substrc(m.masked, m.matchObj.FirstIndex+2) && FirstIndex is 0-based
o = 1
do while .T.
n = at_c(m.c, m.s, m.o)
if .F.;
or m.n <= 1;
or !(m.JSstring and Substrc(m.s, m.n-1, 1) == '\') && Substrc('toto', 0, 1) fonctionne
exit
else
o = m.o + 1
endif
enddo
if Empty(m.n)
assert false message [String delimiter mismatch]
->->-> success = false && THIS IS THE LINE WHERE DEBUG IS POSITIONED
exit
else
n = 1 + m.n && include start delimiter
masked = stuffc( ;
m.masked, ;
m.matchObj.FirstIndex+1, ; && FirstIndex is 0-based
m.n, ;
replicate('~', m.n) ;
)endif
enddo
endcase
return m.success
endfunc
Could you provide the full call stack?
Thanks,
Excuse me. The error is not while compiling. I have it when running xxx.css.........
masked = "new CalendarDateSelect( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) /* {en} event or event source object {fr} événement ou son objet source */ , ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /* {en} id of HTML object {fr} id HTML de l~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
origin = " new CalendarDateSelect( $('_form_agenda-_commandbutton4_hidden') , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $('_form_agenda-_commandbutton4') /* {en} event or event source object {fr} événement ou son objet source */ , '_form_agenda-_commandbutton4' /* {en} id of HTML object {fr} id HTML de l'objet détenant la méthode */ , 'wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
JSstring = .F.
The function that calls maskstrings() is this:
function cStringsMasked && {} Chaîne où les litteraux caractères sont masqués par _ga_StringParseBits_Class_.maskStrings()
lparameters tcChain, result && in: .T. for JavaScript string, @out: .T. if success, else ga_StringParse_Object() instantiation result
local loParser, cResultreturn Iif(.T.;
and ga_Type_IsChar(m.tcChain, .T.);
and (.F.;
or ga_StringParse_Object(@m.loParser); && modify command abGA
or cResultAdd(@m.result, GA_STRINGPARSE_CLASS + [ class instantiation failed!]);
);
and (!lTrue(m.result) or varSet(@m.tcChain, Strtran(Strtran(m.tcChain, '\"'), "\'")));
and varSet(@m.result, m.loParser.maskStrings(@m.cResult, m.tcChain)); && modify command abGA
and m.result;
, m.cResult;
, m.tcChain;
)
endfunc
Ciao Michele,
1/ this is a simple Assert; not exactly an error, probably an incorrect parameter
2/ When the error occurs, what do you have in each of the 3 parameters?
Thanks,
I have an error while compiling my app with 2.20
Before i never saw this error.
The error message is: "String delimiter mismatch"
And the code where i have the error is:
function MaskStrings(masked, origin, JSstring)local success;
, RegexStringStart;
, matchesObj, matchObj, v, c, s, o, nsuccess = true
RegexStringStart = m.this.RegexStringStart
do case
case !ga_Type_IsChar(@m.origin)
assert false
success = false
GA_ERROR_FUNCTION_ARGUMENT_INCORRECT
otherwiseJSstring = ga_Type_IsLogical(m.JSstring) and m.JSstring
masked = m.origindo while m.success ;
and m.RegexStringStart.GetMatches(@m.matchesObj, m.masked) ;
and m.matchesObj.Count > 0 && 0 ou 1 car le pattern est !global
*!* if m.matchesObj.Count <> 1 && thn 2014-09-02 - cas impossible
*!* assert false
*!* success = false
*!* exit
*!* endif
matchObj = m.matchesObj.Item(0)
v = m.matchObj.Value
c = iif(m.v == '[', ']', m.v)
s = substrc(m.masked, m.matchObj.FirstIndex+2) && FirstIndex is 0-based
o = 1
do while .T.
n = at_c(m.c, m.s, m.o)
if .F.;
or m.n <= 1;
or !(m.JSstring and Substrc(m.s, m.n-1, 1) == '\') && Substrc('toto', 0, 1) fonctionne
exit
else
o = m.o + 1
endif
enddo
if Empty(m.n)
assert false message [String delimiter mismatch]
->->-> success = false && THIS IS THE LINE WHERE DEBUG IS POSITIONED
exit
else
n = 1 + m.n && include start delimiter
masked = stuffc( ;
m.masked, ;
m.matchObj.FirstIndex+1, ; && FirstIndex is 0-based
m.n, ;
replicate('~', m.n) ;
)endif
enddo
endcase
return m.success
endfunc
-- thn (FoxInCloud)
The mismatch occurs in a JS comment and, surprisingly, this string is not declared as JS.
Could you provide the full call stack?
Thanks,
Excuse me. The error is not while compiling. I have it when running xxx.css.........
masked = "new CalendarDateSelect( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) /* {en} event or event source object {fr} événement ou son objet source */ , ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /* {en} id of HTML object {fr} id HTML de l~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
origin = " new CalendarDateSelect( $('_form_agenda-_commandbutton4_hidden') , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $('_form_agenda-_commandbutton4') /* {en} event or event source object {fr} événement ou son objet source */ , '_form_agenda-_commandbutton4' /* {en} id of HTML object {fr} id HTML de l'objet détenant la méthode */ , 'wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
JSstring = .F.
The function that calls maskstrings() is this:
function cStringsMasked && {} Chaîne où les litteraux caractères sont masqués par _ga_StringParseBits_Class_.maskStrings()
lparameters tcChain, result && in: .T. for JavaScript string, @out: .T. if success, else ga_StringParse_Object() instantiation result
local loParser, cResultreturn Iif(.T.;
and ga_Type_IsChar(m.tcChain, .T.);
and (.F.;
or ga_StringParse_Object(@m.loParser); && modify command abGA
or cResultAdd(@m.result, GA_STRINGPARSE_CLASS + [ class instantiation failed!]);
);
and (!lTrue(m.result) or varSet(@m.tcChain, Strtran(Strtran(m.tcChain, '\"'), "\'")));
and varSet(@m.result, m.loParser.maskStrings(@m.cResult, m.tcChain)); && modify command abGA
and m.result;
, m.cResult;
, m.tcChain;
)
endfunc
Ciao Michele,
1/ this is a simple Assert; not exactly an error, probably an incorrect parameter
2/ When the error occurs, what do you have in each of the 3 parameters?
Thanks,
I have an error while compiling my app with 2.20
Before i never saw this error.
The error message is: "String delimiter mismatch"
And the code where i have the error is:
function MaskStrings(masked, origin, JSstring)local success;
, RegexStringStart;
, matchesObj, matchObj, v, c, s, o, nsuccess = true
RegexStringStart = m.this.RegexStringStart
do case
case !ga_Type_IsChar(@m.origin)
assert false
success = false
GA_ERROR_FUNCTION_ARGUMENT_INCORRECT
otherwiseJSstring = ga_Type_IsLogical(m.JSstring) and m.JSstring
masked = m.origindo while m.success ;
and m.RegexStringStart.GetMatches(@m.matchesObj, m.masked) ;
and m.matchesObj.Count > 0 && 0 ou 1 car le pattern est !global
*!* if m.matchesObj.Count <> 1 && thn 2014-09-02 - cas impossible
*!* assert false
*!* success = false
*!* exit
*!* endif
matchObj = m.matchesObj.Item(0)
v = m.matchObj.Value
c = iif(m.v == '[', ']', m.v)
s = substrc(m.masked, m.matchObj.FirstIndex+2) && FirstIndex is 0-based
o = 1
do while .T.
n = at_c(m.c, m.s, m.o)
if .F.;
or m.n <= 1;
or !(m.JSstring and Substrc(m.s, m.n-1, 1) == '\') && Substrc('toto', 0, 1) fonctionne
exit
else
o = m.o + 1
endif
enddo
if Empty(m.n)
assert false message [String delimiter mismatch]
->->-> success = false && THIS IS THE LINE WHERE DEBUG IS POSITIONED
exit
else
n = 1 + m.n && include start delimiter
masked = stuffc( ;
m.masked, ;
m.matchObj.FirstIndex+1, ; && FirstIndex is 0-based
m.n, ;
replicate('~', m.n) ;
)endif
enddo
endcase
return m.success
endfunc
Looks like this JS handler is build in some .wcHTMLgen() method
Before we can fix this for good, it should work if you just remove the in-line comments (/* ... */) from the generated JavaScript
Thanks
The mismatch occurs in a JS comment and, surprisingly, this string is not declared as JS.
Could you provide the full call stack?
Thanks,
Excuse me. The error is not while compiling. I have it when running xxx.css.........
masked = "new CalendarDateSelect( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) /* {en} event or event source object {fr} événement ou son objet source */ , ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /* {en} id of HTML object {fr} id HTML de l~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
origin = " new CalendarDateSelect( $('_form_agenda-_commandbutton4_hidden') , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $('_form_agenda-_commandbutton4') /* {en} event or event source object {fr} événement ou son objet source */ , '_form_agenda-_commandbutton4' /* {en} id of HTML object {fr} id HTML de l'objet détenant la méthode */ , 'wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
JSstring = .F.
The function that calls maskstrings() is this:
function cStringsMasked && {} Chaîne où les litteraux caractères sont masqués par _ga_StringParseBits_Class_.maskStrings()
lparameters tcChain, result && in: .T. for JavaScript string, @out: .T. if success, else ga_StringParse_Object() instantiation result
local loParser, cResultreturn Iif(.T.;
and ga_Type_IsChar(m.tcChain, .T.);
and (.F.;
or ga_StringParse_Object(@m.loParser); && modify command abGA
or cResultAdd(@m.result, GA_STRINGPARSE_CLASS + [ class instantiation failed!]);
);
and (!lTrue(m.result) or varSet(@m.tcChain, Strtran(Strtran(m.tcChain, '\"'), "\'")));
and varSet(@m.result, m.loParser.maskStrings(@m.cResult, m.tcChain)); && modify command abGA
and m.result;
, m.cResult;
, m.tcChain;
)
endfunc
Ciao Michele,
1/ this is a simple Assert; not exactly an error, probably an incorrect parameter
2/ When the error occurs, what do you have in each of the 3 parameters?
Thanks,
I have an error while compiling my app with 2.20
Before i never saw this error.
The error message is: "String delimiter mismatch"
And the code where i have the error is:
function MaskStrings(masked, origin, JSstring)local success;
, RegexStringStart;
, matchesObj, matchObj, v, c, s, o, nsuccess = true
RegexStringStart = m.this.RegexStringStart
do case
case !ga_Type_IsChar(@m.origin)
assert false
success = false
GA_ERROR_FUNCTION_ARGUMENT_INCORRECT
otherwiseJSstring = ga_Type_IsLogical(m.JSstring) and m.JSstring
masked = m.origindo while m.success ;
and m.RegexStringStart.GetMatches(@m.matchesObj, m.masked) ;
and m.matchesObj.Count > 0 && 0 ou 1 car le pattern est !global
*!* if m.matchesObj.Count <> 1 && thn 2014-09-02 - cas impossible
*!* assert false
*!* success = false
*!* exit
*!* endif
matchObj = m.matchesObj.Item(0)
v = m.matchObj.Value
c = iif(m.v == '[', ']', m.v)
s = substrc(m.masked, m.matchObj.FirstIndex+2) && FirstIndex is 0-based
o = 1
do while .T.
n = at_c(m.c, m.s, m.o)
if .F.;
or m.n <= 1;
or !(m.JSstring and Substrc(m.s, m.n-1, 1) == '\') && Substrc('toto', 0, 1) fonctionne
exit
else
o = m.o + 1
endif
enddo
if Empty(m.n)
assert false message [String delimiter mismatch]
->->-> success = false && THIS IS THE LINE WHERE DEBUG IS POSITIONED
exit
else
n = 1 + m.n && include start delimiter
masked = stuffc( ;
m.masked, ;
m.matchObj.FirstIndex+1, ; && FirstIndex is 0-based
m.n, ;
replicate('~', m.n) ;
)endif
enddo
endcase
return m.success
endfunc
-- thn (FoxInCloud)
Ciao Michele,
Looks like this JS handler is build in some .wcHTMLgen() method
Before we can fix this for good, it should work if you just remove the in-line comments (/* ... */) from the generated JavaScript
Thanks
The mismatch occurs in a JS comment and, surprisingly, this string is not declared as JS.
Could you provide the full call stack?
Thanks,
Excuse me. The error is not while compiling. I have it when running xxx.css.........
masked = "new CalendarDateSelect( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) /* {en} event or event source object {fr} événement ou son objet source */ , ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /* {en} id of HTML object {fr} id HTML de l~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
origin = " new CalendarDateSelect( $('_form_agenda-_commandbutton4_hidden') , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $('_form_agenda-_commandbutton4') /* {en} event or event source object {fr} événement ou son objet source */ , '_form_agenda-_commandbutton4' /* {en} id of HTML object {fr} id HTML de l'objet détenant la méthode */ , 'wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
JSstring = .F.
The function that calls maskstrings() is this:
function cStringsMasked && {} Chaîne où les litteraux caractères sont masqués par _ga_StringParseBits_Class_.maskStrings()
lparameters tcChain, result && in: .T. for JavaScript string, @out: .T. if success, else ga_StringParse_Object() instantiation result
local loParser, cResultreturn Iif(.T.;
and ga_Type_IsChar(m.tcChain, .T.);
and (.F.;
or ga_StringParse_Object(@m.loParser); && modify command abGA
or cResultAdd(@m.result, GA_STRINGPARSE_CLASS + [ class instantiation failed!]);
);
and (!lTrue(m.result) or varSet(@m.tcChain, Strtran(Strtran(m.tcChain, '\"'), "\'")));
and varSet(@m.result, m.loParser.maskStrings(@m.cResult, m.tcChain)); && modify command abGA
and m.result;
, m.cResult;
, m.tcChain;
)
endfunc
Ciao Michele,
1/ this is a simple Assert; not exactly an error, probably an incorrect parameter
2/ When the error occurs, what do you have in each of the 3 parameters?
Thanks,
I have an error while compiling my app with 2.20
Before i never saw this error.
The error message is: "String delimiter mismatch"
And the code where i have the error is:
function MaskStrings(masked, origin, JSstring)local success;
, RegexStringStart;
, matchesObj, matchObj, v, c, s, o, nsuccess = true
RegexStringStart = m.this.RegexStringStart
do case
case !ga_Type_IsChar(@m.origin)
assert false
success = false
GA_ERROR_FUNCTION_ARGUMENT_INCORRECT
otherwiseJSstring = ga_Type_IsLogical(m.JSstring) and m.JSstring
masked = m.origindo while m.success ;
and m.RegexStringStart.GetMatches(@m.matchesObj, m.masked) ;
and m.matchesObj.Count > 0 && 0 ou 1 car le pattern est !global
*!* if m.matchesObj.Count <> 1 && thn 2014-09-02 - cas impossible
*!* assert false
*!* success = false
*!* exit
*!* endif
matchObj = m.matchesObj.Item(0)
v = m.matchObj.Value
c = iif(m.v == '[', ']', m.v)
s = substrc(m.masked, m.matchObj.FirstIndex+2) && FirstIndex is 0-based
o = 1
do while .T.
n = at_c(m.c, m.s, m.o)
if .F.;
or m.n <= 1;
or !(m.JSstring and Substrc(m.s, m.n-1, 1) == '\') && Substrc('toto', 0, 1) fonctionne
exit
else
o = m.o + 1
endif
enddo
if Empty(m.n)
assert false message [String delimiter mismatch]
->->-> success = false && THIS IS THE LINE WHERE DEBUG IS POSITIONED
exit
else
n = 1 + m.n && include start delimiter
masked = stuffc( ;
m.masked, ;
m.matchObj.FirstIndex+1, ; && FirstIndex is 0-based
m.n, ;
replicate('~', m.n) ;
)endif
enddo
endcase
return m.success
endfunc
Where can i find the generated javascript ?
Ciao Michele,
Looks like this JS handler is build in some .wcHTMLgen() method
Before we can fix this for good, it should work if you just remove the in-line comments (/* ... */) from the generated JavaScript
Thanks
The mismatch occurs in a JS comment and, surprisingly, this string is not declared as JS.
Could you provide the full call stack?
Thanks,
Excuse me. The error is not while compiling. I have it when running xxx.css.........
masked = "new CalendarDateSelect( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) /* {en} event or event source object {fr} événement ou son objet source */ , ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /* {en} id of HTML object {fr} id HTML de l~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
origin = " new CalendarDateSelect( $('_form_agenda-_commandbutton4_hidden') , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $('_form_agenda-_commandbutton4') /* {en} event or event source object {fr} événement ou son objet source */ , '_form_agenda-_commandbutton4' /* {en} id of HTML object {fr} id HTML de l'objet détenant la méthode */ , 'wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
JSstring = .F.
The function that calls maskstrings() is this:
function cStringsMasked && {} Chaîne où les litteraux caractères sont masqués par _ga_StringParseBits_Class_.maskStrings()
lparameters tcChain, result && in: .T. for JavaScript string, @out: .T. if success, else ga_StringParse_Object() instantiation result
local loParser, cResultreturn Iif(.T.;
and ga_Type_IsChar(m.tcChain, .T.);
and (.F.;
or ga_StringParse_Object(@m.loParser); && modify command abGA
or cResultAdd(@m.result, GA_STRINGPARSE_CLASS + [ class instantiation failed!]);
);
and (!lTrue(m.result) or varSet(@m.tcChain, Strtran(Strtran(m.tcChain, '\"'), "\'")));
and varSet(@m.result, m.loParser.maskStrings(@m.cResult, m.tcChain)); && modify command abGA
and m.result;
, m.cResult;
, m.tcChain;
)
endfunc
Ciao Michele,
1/ this is a simple Assert; not exactly an error, probably an incorrect parameter
2/ When the error occurs, what do you have in each of the 3 parameters?
Thanks,
I have an error while compiling my app with 2.20
Before i never saw this error.
The error message is: "String delimiter mismatch"
And the code where i have the error is:
function MaskStrings(masked, origin, JSstring)local success;
, RegexStringStart;
, matchesObj, matchObj, v, c, s, o, nsuccess = true
RegexStringStart = m.this.RegexStringStart
do case
case !ga_Type_IsChar(@m.origin)
assert false
success = false
GA_ERROR_FUNCTION_ARGUMENT_INCORRECT
otherwiseJSstring = ga_Type_IsLogical(m.JSstring) and m.JSstring
masked = m.origindo while m.success ;
and m.RegexStringStart.GetMatches(@m.matchesObj, m.masked) ;
and m.matchesObj.Count > 0 && 0 ou 1 car le pattern est !global
*!* if m.matchesObj.Count <> 1 && thn 2014-09-02 - cas impossible
*!* assert false
*!* success = false
*!* exit
*!* endif
matchObj = m.matchesObj.Item(0)
v = m.matchObj.Value
c = iif(m.v == '[', ']', m.v)
s = substrc(m.masked, m.matchObj.FirstIndex+2) && FirstIndex is 0-based
o = 1
do while .T.
n = at_c(m.c, m.s, m.o)
if .F.;
or m.n <= 1;
or !(m.JSstring and Substrc(m.s, m.n-1, 1) == '\') && Substrc('toto', 0, 1) fonctionne
exit
else
o = m.o + 1
endif
enddo
if Empty(m.n)
assert false message [String delimiter mismatch]
->->-> success = false && THIS IS THE LINE WHERE DEBUG IS POSITIONED
exit
else
n = 1 + m.n && include start delimiter
masked = stuffc( ;
m.masked, ;
m.matchObj.FirstIndex+1, ; && FirstIndex is 0-based
m.n, ;
replicate('~', m.n) ;
)endif
enddo
endcase
return m.success
endfunc
IF (Type('m.thisForm.wlHTMLgen') == 'L' AND m.thisForm.wlHTMLgen)LOCAL lcID, lcScript
lcID = m.this.woHTMLgen.cObjAddrGet(m.this, 'hidden')
lcScript = Textmerge(''+;
[ new CalendarDateSelect(]+;
[ $('<<m.lcID>>')]+;
[ , { /* here start the calendar options */]+;
[ hidden:true]+;
[ , popup_by: this]+;
[ , year_range: 10]+;
[ , onchange: function(){FoxInCloud.MethExec(]+;
[ $('<<this.wcID>>') /* {en} event or event source object {fr} événement ou son objet source */]+;
[ , '<<this.wcID>>' /* {en} id of HTML object {fr} id HTML de l'objet détenant la méthode */]+;
[ , 'wFormCallBack' /* {en} method {fr} méthode */]+;
[ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */]+;
[ , false /* {en} Synchronous true or false according to your needs */]+;
[ )]+;
[ }]+;
[ }]+;
[ );];
)
RETURN m.lcScriptELSE
* You LAN mode code
EndIf
you probably can find it by searching 'event or event source object' in your whole project, or any other string you can find in 'm.origin' below
Where can i find the generated javascript ?
Ciao Michele,
Looks like this JS handler is build in some .wcHTMLgen() method
Before we can fix this for good, it should work if you just remove the in-line comments (/* ... */) from the generated JavaScript
Thanks
The mismatch occurs in a JS comment and, surprisingly, this string is not declared as JS.
Could you provide the full call stack?
Thanks,
Excuse me. The error is not while compiling. I have it when running xxx.css.........
masked = "new CalendarDateSelect( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) /* {en} event or event source object {fr} événement ou son objet source */ , ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /* {en} id of HTML object {fr} id HTML de l~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
origin = " new CalendarDateSelect( $('_form_agenda-_commandbutton4_hidden') , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $('_form_agenda-_commandbutton4') /* {en} event or event source object {fr} événement ou son objet source */ , '_form_agenda-_commandbutton4' /* {en} id of HTML object {fr} id HTML de l'objet détenant la méthode */ , 'wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
JSstring = .F.
The function that calls maskstrings() is this:
function cStringsMasked && {} Chaîne où les litteraux caractères sont masqués par _ga_StringParseBits_Class_.maskStrings()
lparameters tcChain, result && in: .T. for JavaScript string, @out: .T. if success, else ga_StringParse_Object() instantiation result
local loParser, cResultreturn Iif(.T.;
and ga_Type_IsChar(m.tcChain, .T.);
and (.F.;
or ga_StringParse_Object(@m.loParser); && modify command abGA
or cResultAdd(@m.result, GA_STRINGPARSE_CLASS + [ class instantiation failed!]);
);
and (!lTrue(m.result) or varSet(@m.tcChain, Strtran(Strtran(m.tcChain, '\"'), "\'")));
and varSet(@m.result, m.loParser.maskStrings(@m.cResult, m.tcChain)); && modify command abGA
and m.result;
, m.cResult;
, m.tcChain;
)
endfunc
Ciao Michele,
1/ this is a simple Assert; not exactly an error, probably an incorrect parameter
2/ When the error occurs, what do you have in each of the 3 parameters?
Thanks,
I have an error while compiling my app with 2.20
Before i never saw this error.
The error message is: "String delimiter mismatch"
And the code where i have the error is:
function MaskStrings(masked, origin, JSstring)local success;
, RegexStringStart;
, matchesObj, matchObj, v, c, s, o, nsuccess = true
RegexStringStart = m.this.RegexStringStart
do case
case !ga_Type_IsChar(@m.origin)
assert false
success = false
GA_ERROR_FUNCTION_ARGUMENT_INCORRECT
otherwiseJSstring = ga_Type_IsLogical(m.JSstring) and m.JSstring
masked = m.origindo while m.success ;
and m.RegexStringStart.GetMatches(@m.matchesObj, m.masked) ;
and m.matchesObj.Count > 0 && 0 ou 1 car le pattern est !global
*!* if m.matchesObj.Count <> 1 && thn 2014-09-02 - cas impossible
*!* assert false
*!* success = false
*!* exit
*!* endif
matchObj = m.matchesObj.Item(0)
v = m.matchObj.Value
c = iif(m.v == '[', ']', m.v)
s = substrc(m.masked, m.matchObj.FirstIndex+2) && FirstIndex is 0-based
o = 1
do while .T.
n = at_c(m.c, m.s, m.o)
if .F.;
or m.n <= 1;
or !(m.JSstring and Substrc(m.s, m.n-1, 1) == '\') && Substrc('toto', 0, 1) fonctionne
exit
else
o = m.o + 1
endif
enddo
if Empty(m.n)
assert false message [String delimiter mismatch]
->->-> success = false && THIS IS THE LINE WHERE DEBUG IS POSITIONED
exit
else
n = 1 + m.n && include start delimiter
masked = stuffc( ;
m.masked, ;
m.matchObj.FirstIndex+1, ; && FirstIndex is 0-based
m.n, ;
replicate('~', m.n) ;
)endif
enddo
endcase
return m.success
endfunc
IF (Type('m.thisForm.wlHTMLgen') == 'L' AND m.thisForm.wlHTMLgen)LOCAL lcID, lcScript
lcID = m.this.woHTMLgen.cObjAddrGet(m.this, 'hidden')
lcScript = Textmerge(''+;
[ new CalendarDateSelect(]+;
[ $('')] +;
[ , { /* here start the calendar options */]+;
[ hidden:true]+;
[ , popup_by: this]+;
[ , year_range: 10]+;
[ , onchange: function(){FoxInCloud.MethExec(]+;
[ $('')] +; && /* {en} event or event source object {fr} événement ou son objet source */
[ , ''] +; && /* {en} id of HTML object {fr} id HTML de l'objet détenant la méthode */
[ , 'wFormCallBack']+; && /* {en} method {fr} méthode */
[ , this.calendar_date_select.selected_date ]+; &&/* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */
[ , false]+; && /* {en} Synchronous true or false according to your needs */
[ )]+;
[ }]+;
[ }]+;
[ );];
)
RETURN m.lcScriptEndIf
* You LAN/desktop mode code
I found this code into click event of a button in the form i had the error. It was for using the calendar widget
IF (Type('m.thisForm.wlHTMLgen') == 'L' AND m.thisForm.wlHTMLgen)LOCAL lcID, lcScript
lcID = m.this.woHTMLgen.cObjAddrGet(m.this, 'hidden')
lcScript = Textmerge(''+;
[ new CalendarDateSelect(]+;
[ $('')] +;
[ , { /* here start the calendar options */]+;
[ hidden:true]+;
[ , popup_by: this]+;
[ , year_range: 10]+;
[ , onchange: function(){FoxInCloud.MethExec(]+;
[ $('') /* {en} event or event source object {fr} événement ou son objet source */] +;
[ , '' /* {en} id of HTML object {fr} id HTML de l'objet détenant la méthode */] +;
[ , 'wFormCallBack' /* {en} method {fr} méthode */]+;
[ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */]+;
[ , false /* {en} Synchronous true or false according to your needs */]+;
[ )]+;
[ }]+;
[ }]+;
[ );];
)
RETURN m.lcScriptELSE
* You LAN mode code
EndIf
you probably can find it by searching 'event or event source object' in your whole project, or any other string you can find in 'm.origin' below
Where can i find the generated javascript ?
Ciao Michele,
Looks like this JS handler is build in some .wcHTMLgen() method
Before we can fix this for good, it should work if you just remove the in-line comments (/* ... */) from the generated JavaScript
Thanks
The mismatch occurs in a JS comment and, surprisingly, this string is not declared as JS.
Could you provide the full call stack?
Thanks,
Excuse me. The error is not while compiling. I have it when running xxx.css.........
masked = "new CalendarDateSelect( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) /* {en} event or event source object {fr} événement ou son objet source */ , ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /* {en} id of HTML object {fr} id HTML de l~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
origin = " new CalendarDateSelect( $('_form_agenda-_commandbutton4_hidden') , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $('_form_agenda-_commandbutton4') /* {en} event or event source object {fr} événement ou son objet source */ , '_form_agenda-_commandbutton4' /* {en} id of HTML object {fr} id HTML de l'objet détenant la méthode */ , 'wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
JSstring = .F.
The function that calls maskstrings() is this:
function cStringsMasked && {} Chaîne où les litteraux caractères sont masqués par _ga_StringParseBits_Class_.maskStrings()
lparameters tcChain, result && in: .T. for JavaScript string, @out: .T. if success, else ga_StringParse_Object() instantiation result
local loParser, cResultreturn Iif(.T.;
and ga_Type_IsChar(m.tcChain, .T.);
and (.F.;
or ga_StringParse_Object(@m.loParser); && modify command abGA
or cResultAdd(@m.result, GA_STRINGPARSE_CLASS + [ class instantiation failed!]);
);
and (!lTrue(m.result) or varSet(@m.tcChain, Strtran(Strtran(m.tcChain, '\"'), "\'")));
and varSet(@m.result, m.loParser.maskStrings(@m.cResult, m.tcChain)); && modify command abGA
and m.result;
, m.cResult;
, m.tcChain;
)
endfunc
Ciao Michele,
1/ this is a simple Assert; not exactly an error, probably an incorrect parameter
2/ When the error occurs, what do you have in each of the 3 parameters?
Thanks,
I have an error while compiling my app with 2.20
Before i never saw this error.
The error message is: "String delimiter mismatch"
And the code where i have the error is:
function MaskStrings(masked, origin, JSstring)local success;
, RegexStringStart;
, matchesObj, matchObj, v, c, s, o, nsuccess = true
RegexStringStart = m.this.RegexStringStart
do case
case !ga_Type_IsChar(@m.origin)
assert false
success = false
GA_ERROR_FUNCTION_ARGUMENT_INCORRECT
otherwiseJSstring = ga_Type_IsLogical(m.JSstring) and m.JSstring
masked = m.origindo while m.success ;
and m.RegexStringStart.GetMatches(@m.matchesObj, m.masked) ;
and m.matchesObj.Count > 0 && 0 ou 1 car le pattern est !global
*!* if m.matchesObj.Count <> 1 && thn 2014-09-02 - cas impossible
*!* assert false
*!* success = false
*!* exit
*!* endif
matchObj = m.matchesObj.Item(0)
v = m.matchObj.Value
c = iif(m.v == '[', ']', m.v)
s = substrc(m.masked, m.matchObj.FirstIndex+2) && FirstIndex is 0-based
o = 1
do while .T.
n = at_c(m.c, m.s, m.o)
if .F.;
or m.n <= 1;
or !(m.JSstring and Substrc(m.s, m.n-1, 1) == '\') && Substrc('toto', 0, 1) fonctionne
exit
else
o = m.o + 1
endif
enddo
if Empty(m.n)
assert false message [String delimiter mismatch]
->->-> success = false && THIS IS THE LINE WHERE DEBUG IS POSITIONED
exit
else
n = 1 + m.n && include start delimiter
masked = stuffc( ;
m.masked, ;
m.matchObj.FirstIndex+1, ; && FirstIndex is 0-based
m.n, ;
replicate('~', m.n) ;
)endif
enddo
endcase
return m.success
endfunc
Can we look at the other problem ? The most urgent and that stops my work..because i have to work with an older version of foxincloud...
OK so you can simply remove the JS comments or turn them into VFP comments like below:
IF (Type('m.thisForm.wlHTMLgen') == 'L' AND m.thisForm.wlHTMLgen)LOCAL lcID, lcScript
lcID = m.this.woHTMLgen.cObjAddrGet(m.this, 'hidden')
lcScript = Textmerge(''+;
[ new CalendarDateSelect(]+;
[ $('')] +;
[ , { /* here start the calendar options */]+;
[ hidden:true]+;
[ , popup_by: this]+;
[ , year_range: 10]+;
[ , onchange: function(){FoxInCloud.MethExec(]+;
[ $('')] +; && /* {en} event or event source object {fr} événement ou son objet source */
[ , ''] +; && /* {en} id of HTML object {fr} id HTML de l'objet détenant la méthode */
[ , 'wFormCallBack']+; && /* {en} method {fr} méthode */
[ , this.calendar_date_select.selected_date ]+; &&/* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */
[ , false]+; && /* {en} Synchronous true or false according to your needs */
[ )]+;
[ }]+;
[ }]+;
[ );];
)
RETURN m.lcScriptEndIf
* You LAN/desktop mode code
I found this code into click event of a button in the form i had the error. It was for using the calendar widget
IF (Type('m.thisForm.wlHTMLgen') == 'L' AND m.thisForm.wlHTMLgen)LOCAL lcID, lcScript
lcID = m.this.woHTMLgen.cObjAddrGet(m.this, 'hidden')
lcScript = Textmerge(''+;
[ new CalendarDateSelect(]+;
[ $('')] +;
[ , { /* here start the calendar options */]+;
[ hidden:true]+;
[ , popup_by: this]+;
[ , year_range: 10]+;
[ , onchange: function(){FoxInCloud.MethExec(]+;
[ $('') /* {en} event or event source object {fr} événement ou son objet source */] +;
[ , '' /* {en} id of HTML object {fr} id HTML de l'objet détenant la méthode */] +;
[ , 'wFormCallBack' /* {en} method {fr} méthode */]+;
[ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */]+;
[ , false /* {en} Synchronous true or false according to your needs */]+;
[ )]+;
[ }]+;
[ }]+;
[ );];
)
RETURN m.lcScriptELSE
* You LAN mode code
EndIf
you probably can find it by searching 'event or event source object' in your whole project, or any other string you can find in 'm.origin' below
Where can i find the generated javascript ?
Ciao Michele,
Looks like this JS handler is build in some .wcHTMLgen() method
Before we can fix this for good, it should work if you just remove the in-line comments (/* ... */) from the generated JavaScript
Thanks
The mismatch occurs in a JS comment and, surprisingly, this string is not declared as JS.
Could you provide the full call stack?
Thanks,
Excuse me. The error is not while compiling. I have it when running xxx.css.........
masked = "new CalendarDateSelect( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) /* {en} event or event source object {fr} événement ou son objet source */ , ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /* {en} id of HTML object {fr} id HTML de l~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
origin = " new CalendarDateSelect( $('_form_agenda-_commandbutton4_hidden') , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $('_form_agenda-_commandbutton4') /* {en} event or event source object {fr} événement ou son objet source */ , '_form_agenda-_commandbutton4' /* {en} id of HTML object {fr} id HTML de l'objet détenant la méthode */ , 'wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
JSstring = .F.
The function that calls maskstrings() is this:
function cStringsMasked && {} Chaîne où les litteraux caractères sont masqués par _ga_StringParseBits_Class_.maskStrings()
lparameters tcChain, result && in: .T. for JavaScript string, @out: .T. if success, else ga_StringParse_Object() instantiation result
local loParser, cResultreturn Iif(.T.;
and ga_Type_IsChar(m.tcChain, .T.);
and (.F.;
or ga_StringParse_Object(@m.loParser); && modify command abGA
or cResultAdd(@m.result, GA_STRINGPARSE_CLASS + [ class instantiation failed!]);
);
and (!lTrue(m.result) or varSet(@m.tcChain, Strtran(Strtran(m.tcChain, '\"'), "\'")));
and varSet(@m.result, m.loParser.maskStrings(@m.cResult, m.tcChain)); && modify command abGA
and m.result;
, m.cResult;
, m.tcChain;
)
endfunc
Ciao Michele,
1/ this is a simple Assert; not exactly an error, probably an incorrect parameter
2/ When the error occurs, what do you have in each of the 3 parameters?
Thanks,
I have an error while compiling my app with 2.20
Before i never saw this error.
The error message is: "String delimiter mismatch"
And the code where i have the error is:
function MaskStrings(masked, origin, JSstring)local success;
, RegexStringStart;
, matchesObj, matchObj, v, c, s, o, nsuccess = true
RegexStringStart = m.this.RegexStringStart
do case
case !ga_Type_IsChar(@m.origin)
assert false
success = false
GA_ERROR_FUNCTION_ARGUMENT_INCORRECT
otherwiseJSstring = ga_Type_IsLogical(m.JSstring) and m.JSstring
masked = m.origindo while m.success ;
and m.RegexStringStart.GetMatches(@m.matchesObj, m.masked) ;
and m.matchesObj.Count > 0 && 0 ou 1 car le pattern est !global
*!* if m.matchesObj.Count <> 1 && thn 2014-09-02 - cas impossible
*!* assert false
*!* success = false
*!* exit
*!* endif
matchObj = m.matchesObj.Item(0)
v = m.matchObj.Value
c = iif(m.v == '[', ']', m.v)
s = substrc(m.masked, m.matchObj.FirstIndex+2) && FirstIndex is 0-based
o = 1
do while .T.
n = at_c(m.c, m.s, m.o)
if .F.;
or m.n <= 1;
or !(m.JSstring and Substrc(m.s, m.n-1, 1) == '\') && Substrc('toto', 0, 1) fonctionne
exit
else
o = m.o + 1
endif
enddo
if Empty(m.n)
assert false message [String delimiter mismatch]
->->-> success = false && THIS IS THE LINE WHERE DEBUG IS POSITIONED
exit
else
n = 1 + m.n && include start delimiter
masked = stuffc( ;
m.masked, ;
m.matchObj.FirstIndex+1, ; && FirstIndex is 0-based
m.n, ;
replicate('~', m.n) ;
)endif
enddo
endcase
return m.success
endfunc
Could you provide a test URL by PM so that we can see the XML response causing the menu to get disabled?
We can look at that next week
Thanks
Ok. It seems SOLVED ! Thanks
Can we look at the other problem ? The most urgent and that stops my work..because i have to work with an older version of foxincloud...
OK so you can simply remove the JS comments or turn them into VFP comments like below:
IF (Type('m.thisForm.wlHTMLgen') == 'L' AND m.thisForm.wlHTMLgen)LOCAL lcID, lcScript
lcID = m.this.woHTMLgen.cObjAddrGet(m.this, 'hidden')
lcScript = Textmerge(''+;
[ new CalendarDateSelect(]+;
[ $('')] +;
[ , { /* here start the calendar options */]+;
[ hidden:true]+;
[ , popup_by: this]+;
[ , year_range: 10]+;
[ , onchange: function(){FoxInCloud.MethExec(]+;
[ $('')] +; && /* {en} event or event source object {fr} événement ou son objet source */
[ , ''] +; && /* {en} id of HTML object {fr} id HTML de l'objet détenant la méthode */
[ , 'wFormCallBack']+; && /* {en} method {fr} méthode */
[ , this.calendar_date_select.selected_date ]+; &&/* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */
[ , false]+; && /* {en} Synchronous true or false according to your needs */
[ )]+;
[ }]+;
[ }]+;
[ );];
)
RETURN m.lcScriptEndIf
* You LAN/desktop mode code
I found this code into click event of a button in the form i had the error. It was for using the calendar widget
IF (Type('m.thisForm.wlHTMLgen') == 'L' AND m.thisForm.wlHTMLgen)LOCAL lcID, lcScript
lcID = m.this.woHTMLgen.cObjAddrGet(m.this, 'hidden')
lcScript = Textmerge(''+;
[ new CalendarDateSelect(]+;
[ $('')] +;
[ , { /* here start the calendar options */]+;
[ hidden:true]+;
[ , popup_by: this]+;
[ , year_range: 10]+;
[ , onchange: function(){FoxInCloud.MethExec(]+;
[ $('') /* {en} event or event source object {fr} événement ou son objet source */] +;
[ , '' /* {en} id of HTML object {fr} id HTML de l'objet détenant la méthode */] +;
[ , 'wFormCallBack' /* {en} method {fr} méthode */]+;
[ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */]+;
[ , false /* {en} Synchronous true or false according to your needs */]+;
[ )]+;
[ }]+;
[ }]+;
[ );];
)
RETURN m.lcScriptELSE
* You LAN mode code
EndIf
you probably can find it by searching 'event or event source object' in your whole project, or any other string you can find in 'm.origin' below
Where can i find the generated javascript ?
Ciao Michele,
Looks like this JS handler is build in some .wcHTMLgen() method
Before we can fix this for good, it should work if you just remove the in-line comments (/* ... */) from the generated JavaScript
Thanks
The mismatch occurs in a JS comment and, surprisingly, this string is not declared as JS.
Could you provide the full call stack?
Thanks,
Excuse me. The error is not while compiling. I have it when running xxx.css.........
masked = "new CalendarDateSelect( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) /* {en} event or event source object {fr} événement ou son objet source */ , ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /* {en} id of HTML object {fr} id HTML de l~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
origin = " new CalendarDateSelect( $('_form_agenda-_commandbutton4_hidden') , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $('_form_agenda-_commandbutton4') /* {en} event or event source object {fr} événement ou son objet source */ , '_form_agenda-_commandbutton4' /* {en} id of HTML object {fr} id HTML de l'objet détenant la méthode */ , 'wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
JSstring = .F.
The function that calls maskstrings() is this:
function cStringsMasked && {} Chaîne où les litteraux caractères sont masqués par _ga_StringParseBits_Class_.maskStrings()
lparameters tcChain, result && in: .T. for JavaScript string, @out: .T. if success, else ga_StringParse_Object() instantiation result
local loParser, cResultreturn Iif(.T.;
and ga_Type_IsChar(m.tcChain, .T.);
and (.F.;
or ga_StringParse_Object(@m.loParser); && modify command abGA
or cResultAdd(@m.result, GA_STRINGPARSE_CLASS + [ class instantiation failed!]);
);
and (!lTrue(m.result) or varSet(@m.tcChain, Strtran(Strtran(m.tcChain, '\"'), "\'")));
and varSet(@m.result, m.loParser.maskStrings(@m.cResult, m.tcChain)); && modify command abGA
and m.result;
, m.cResult;
, m.tcChain;
)
endfunc
Ciao Michele,
1/ this is a simple Assert; not exactly an error, probably an incorrect parameter
2/ When the error occurs, what do you have in each of the 3 parameters?
Thanks,
I have an error while compiling my app with 2.20
Before i never saw this error.
The error message is: "String delimiter mismatch"
And the code where i have the error is:
function MaskStrings(masked, origin, JSstring)local success;
, RegexStringStart;
, matchesObj, matchObj, v, c, s, o, nsuccess = true
RegexStringStart = m.this.RegexStringStart
do case
case !ga_Type_IsChar(@m.origin)
assert false
success = false
GA_ERROR_FUNCTION_ARGUMENT_INCORRECT
otherwiseJSstring = ga_Type_IsLogical(m.JSstring) and m.JSstring
masked = m.origindo while m.success ;
and m.RegexStringStart.GetMatches(@m.matchesObj, m.masked) ;
and m.matchesObj.Count > 0 && 0 ou 1 car le pattern est !global
*!* if m.matchesObj.Count <> 1 && thn 2014-09-02 - cas impossible
*!* assert false
*!* success = false
*!* exit
*!* endif
matchObj = m.matchesObj.Item(0)
v = m.matchObj.Value
c = iif(m.v == '[', ']', m.v)
s = substrc(m.masked, m.matchObj.FirstIndex+2) && FirstIndex is 0-based
o = 1
do while .T.
n = at_c(m.c, m.s, m.o)
if .F.;
or m.n <= 1;
or !(m.JSstring and Substrc(m.s, m.n-1, 1) == '\') && Substrc('toto', 0, 1) fonctionne
exit
else
o = m.o + 1
endif
enddo
if Empty(m.n)
assert false message [String delimiter mismatch]
->->-> success = false && THIS IS THE LINE WHERE DEBUG IS POSITIONED
exit
else
n = 1 + m.n && include start delimiter
masked = stuffc( ;
m.masked, ;
m.matchObj.FirstIndex+1, ; && FirstIndex is 0-based
m.n, ;
replicate('~', m.n) ;
)endif
enddo
endcase
return m.success
endfunc
-- thn (FoxInCloud)
OK thanks for the feedback
Could you provide a test URL by PM so that we can see the XML response causing the menu to get disabled?
We can look at that next week
Thanks
Ok. It seems SOLVED ! Thanks
Can we look at the other problem ? The most urgent and that stops my work..because i have to work with an older version of foxincloud...
OK so you can simply remove the JS comments or turn them into VFP comments like below:
IF (Type('m.thisForm.wlHTMLgen') == 'L' AND m.thisForm.wlHTMLgen)LOCAL lcID, lcScript
lcID = m.this.woHTMLgen.cObjAddrGet(m.this, 'hidden')
lcScript = Textmerge(''+;
[ new CalendarDateSelect(]+;
[ $('')] +;
[ , { /* here start the calendar options */]+;
[ hidden:true]+;
[ , popup_by: this]+;
[ , year_range: 10]+;
[ , onchange: function(){FoxInCloud.MethExec(]+;
[ $('')] +; && /* {en} event or event source object {fr} événement ou son objet source */
[ , ''] +; && /* {en} id of HTML object {fr} id HTML de l'objet détenant la méthode */
[ , 'wFormCallBack']+; && /* {en} method {fr} méthode */
[ , this.calendar_date_select.selected_date ]+; &&/* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */
[ , false]+; && /* {en} Synchronous true or false according to your needs */
[ )]+;
[ }]+;
[ }]+;
[ );];
)
RETURN m.lcScriptEndIf
* You LAN/desktop mode code
I found this code into click event of a button in the form i had the error. It was for using the calendar widget
IF (Type('m.thisForm.wlHTMLgen') == 'L' AND m.thisForm.wlHTMLgen)LOCAL lcID, lcScript
lcID = m.this.woHTMLgen.cObjAddrGet(m.this, 'hidden')
lcScript = Textmerge(''+;
[ new CalendarDateSelect(]+;
[ $('')] +;
[ , { /* here start the calendar options */]+;
[ hidden:true]+;
[ , popup_by: this]+;
[ , year_range: 10]+;
[ , onchange: function(){FoxInCloud.MethExec(]+;
[ $('') /* {en} event or event source object {fr} événement ou son objet source */] +;
[ , '' /* {en} id of HTML object {fr} id HTML de l'objet détenant la méthode */] +;
[ , 'wFormCallBack' /* {en} method {fr} méthode */]+;
[ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */]+;
[ , false /* {en} Synchronous true or false according to your needs */]+;
[ )]+;
[ }]+;
[ }]+;
[ );];
)
RETURN m.lcScriptELSE
* You LAN mode code
EndIf
you probably can find it by searching 'event or event source object' in your whole project, or any other string you can find in 'm.origin' below
Where can i find the generated javascript ?
Ciao Michele,
Looks like this JS handler is build in some .wcHTMLgen() method
Before we can fix this for good, it should work if you just remove the in-line comments (/* ... */) from the generated JavaScript
Thanks
The mismatch occurs in a JS comment and, surprisingly, this string is not declared as JS.
Could you provide the full call stack?
Thanks,
Excuse me. The error is not while compiling. I have it when running xxx.css.........
masked = "new CalendarDateSelect( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) /* {en} event or event source object {fr} événement ou son objet source */ , ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /* {en} id of HTML object {fr} id HTML de l~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
origin = " new CalendarDateSelect( $('_form_agenda-_commandbutton4_hidden') , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $('_form_agenda-_commandbutton4') /* {en} event or event source object {fr} événement ou son objet source */ , '_form_agenda-_commandbutton4' /* {en} id of HTML object {fr} id HTML de l'objet détenant la méthode */ , 'wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
JSstring = .F.
The function that calls maskstrings() is this:
function cStringsMasked && {} Chaîne où les litteraux caractères sont masqués par _ga_StringParseBits_Class_.maskStrings()
lparameters tcChain, result && in: .T. for JavaScript string, @out: .T. if success, else ga_StringParse_Object() instantiation result
local loParser, cResultreturn Iif(.T.;
and ga_Type_IsChar(m.tcChain, .T.);
and (.F.;
or ga_StringParse_Object(@m.loParser); && modify command abGA
or cResultAdd(@m.result, GA_STRINGPARSE_CLASS + [ class instantiation failed!]);
);
and (!lTrue(m.result) or varSet(@m.tcChain, Strtran(Strtran(m.tcChain, '\"'), "\'")));
and varSet(@m.result, m.loParser.maskStrings(@m.cResult, m.tcChain)); && modify command abGA
and m.result;
, m.cResult;
, m.tcChain;
)
endfunc
Ciao Michele,
1/ this is a simple Assert; not exactly an error, probably an incorrect parameter
2/ When the error occurs, what do you have in each of the 3 parameters?
Thanks,
I have an error while compiling my app with 2.20
Before i never saw this error.
The error message is: "String delimiter mismatch"
And the code where i have the error is:
function MaskStrings(masked, origin, JSstring)local success;
, RegexStringStart;
, matchesObj, matchObj, v, c, s, o, nsuccess = true
RegexStringStart = m.this.RegexStringStart
do case
case !ga_Type_IsChar(@m.origin)
assert false
success = false
GA_ERROR_FUNCTION_ARGUMENT_INCORRECT
otherwiseJSstring = ga_Type_IsLogical(m.JSstring) and m.JSstring
masked = m.origindo while m.success ;
and m.RegexStringStart.GetMatches(@m.matchesObj, m.masked) ;
and m.matchesObj.Count > 0 && 0 ou 1 car le pattern est !global
*!* if m.matchesObj.Count <> 1 && thn 2014-09-02 - cas impossible
*!* assert false
*!* success = false
*!* exit
*!* endif
matchObj = m.matchesObj.Item(0)
v = m.matchObj.Value
c = iif(m.v == '[', ']', m.v)
s = substrc(m.masked, m.matchObj.FirstIndex+2) && FirstIndex is 0-based
o = 1
do while .T.
n = at_c(m.c, m.s, m.o)
if .F.;
or m.n <= 1;
or !(m.JSstring and Substrc(m.s, m.n-1, 1) == '\') && Substrc('toto', 0, 1) fonctionne
exit
else
o = m.o + 1
endif
enddo
if Empty(m.n)
assert false message [String delimiter mismatch]
->->-> success = false && THIS IS THE LINE WHERE DEBUG IS POSITIONED
exit
else
n = 1 + m.n && include start delimiter
masked = stuffc( ;
m.masked, ;
m.matchObj.FirstIndex+1, ; && FirstIndex is 0-based
m.n, ;
replicate('~', m.n) ;
)endif
enddo
endcase
return m.success
endfunc
Did not receive the URL yet ...
Tomorrow i'll send you the address to access the app.....so you can check the problem....
OK thanks for the feedback
Could you provide a test URL by PM so that we can see the XML response causing the menu to get disabled?
We can look at that next week
Thanks
Ok. It seems SOLVED ! Thanks
Can we look at the other problem ? The most urgent and that stops my work..because i have to work with an older version of foxincloud...
OK so you can simply remove the JS comments or turn them into VFP comments like below:
IF (Type('m.thisForm.wlHTMLgen') == 'L' AND m.thisForm.wlHTMLgen)LOCAL lcID, lcScript
lcID = m.this.woHTMLgen.cObjAddrGet(m.this, 'hidden')
lcScript = Textmerge(''+;
[ new CalendarDateSelect(]+;
[ $('')] +;
[ , { /* here start the calendar options */]+;
[ hidden:true]+;
[ , popup_by: this]+;
[ , year_range: 10]+;
[ , onchange: function(){FoxInCloud.MethExec(]+;
[ $('')] +; && /* {en} event or event source object {fr} événement ou son objet source */
[ , ''] +; && /* {en} id of HTML object {fr} id HTML de l'objet détenant la méthode */
[ , 'wFormCallBack']+; && /* {en} method {fr} méthode */
[ , this.calendar_date_select.selected_date ]+; &&/* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */
[ , false]+; && /* {en} Synchronous true or false according to your needs */
[ )]+;
[ }]+;
[ }]+;
[ );];
)
RETURN m.lcScriptEndIf
* You LAN/desktop mode code
I found this code into click event of a button in the form i had the error. It was for using the calendar widget
IF (Type('m.thisForm.wlHTMLgen') == 'L' AND m.thisForm.wlHTMLgen)LOCAL lcID, lcScript
lcID = m.this.woHTMLgen.cObjAddrGet(m.this, 'hidden')
lcScript = Textmerge(''+;
[ new CalendarDateSelect(]+;
[ $('')] +;
[ , { /* here start the calendar options */]+;
[ hidden:true]+;
[ , popup_by: this]+;
[ , year_range: 10]+;
[ , onchange: function(){FoxInCloud.MethExec(]+;
[ $('') /* {en} event or event source object {fr} événement ou son objet source */] +;
[ , '' /* {en} id of HTML object {fr} id HTML de l'objet détenant la méthode */] +;
[ , 'wFormCallBack' /* {en} method {fr} méthode */]+;
[ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */]+;
[ , false /* {en} Synchronous true or false according to your needs */]+;
[ )]+;
[ }]+;
[ }]+;
[ );];
)
RETURN m.lcScriptELSE
* You LAN mode code
EndIf
you probably can find it by searching 'event or event source object' in your whole project, or any other string you can find in 'm.origin' below
Where can i find the generated javascript ?
Ciao Michele,
Looks like this JS handler is build in some .wcHTMLgen() method
Before we can fix this for good, it should work if you just remove the in-line comments (/* ... */) from the generated JavaScript
Thanks
The mismatch occurs in a JS comment and, surprisingly, this string is not declared as JS.
Could you provide the full call stack?
Thanks,
Excuse me. The error is not while compiling. I have it when running xxx.css.........
masked = "new CalendarDateSelect( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) /* {en} event or event source object {fr} événement ou son objet source */ , ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /* {en} id of HTML object {fr} id HTML de l~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
origin = " new CalendarDateSelect( $('_form_agenda-_commandbutton4_hidden') , { /* here start the calendar options */ hidden:true , popup_by: this , year_range: 10 , onchange: function(){FoxInCloud.MethExec( $('_form_agenda-_commandbutton4') /* {en} event or event source object {fr} événement ou son objet source */ , '_form_agenda-_commandbutton4' /* {en} id of HTML object {fr} id HTML de l'objet détenant la méthode */ , 'wFormCallBack' /* {en} method {fr} méthode */ , this.calendar_date_select.selected_date /* {en} Value to be passed as method parameter {fr} Valeur à passer en paramètre à la méthode */ , false /* {en} Synchronous true or false according to your needs */ ) } } );"
JSstring = .F.
The function that calls maskstrings() is this:
function cStringsMasked && {} Chaîne où les litteraux caractères sont masqués par _ga_StringParseBits_Class_.maskStrings()
lparameters tcChain, result && in: .T. for JavaScript string, @out: .T. if success, else ga_StringParse_Object() instantiation result
local loParser, cResultreturn Iif(.T.;
and ga_Type_IsChar(m.tcChain, .T.);
and (.F.;
or ga_StringParse_Object(@m.loParser); && modify command abGA
or cResultAdd(@m.result, GA_STRINGPARSE_CLASS + [ class instantiation failed!]);
);
and (!lTrue(m.result) or varSet(@m.tcChain, Strtran(Strtran(m.tcChain, '\"'), "\'")));
and varSet(@m.result, m.loParser.maskStrings(@m.cResult, m.tcChain)); && modify command abGA
and m.result;
, m.cResult;
, m.tcChain;
)
endfunc
Ciao Michele,
1/ this is a simple Assert; not exactly an error, probably an incorrect parameter
2/ When the error occurs, what do you have in each of the 3 parameters?
Thanks,
I have an error while compiling my app with 2.20
Before i never saw this error.
The error message is: "String delimiter mismatch"
And the code where i have the error is:
function MaskStrings(masked, origin, JSstring)local success;
, RegexStringStart;
, matchesObj, matchObj, v, c, s, o, nsuccess = true
RegexStringStart = m.this.RegexStringStart
do case
case !ga_Type_IsChar(@m.origin)
assert false
success = false
GA_ERROR_FUNCTION_ARGUMENT_INCORRECT
otherwiseJSstring = ga_Type_IsLogical(m.JSstring) and m.JSstring
masked = m.origindo while m.success ;
and m.RegexStringStart.GetMatches(@m.matchesObj, m.masked) ;
and m.matchesObj.Count > 0 && 0 ou 1 car le pattern est !global
*!* if m.matchesObj.Count <> 1 && thn 2014-09-02 - cas impossible
*!* assert false
*!* success = false
*!* exit
*!* endif
matchObj = m.matchesObj.Item(0)
v = m.matchObj.Value
c = iif(m.v == '[', ']', m.v)
s = substrc(m.masked, m.matchObj.FirstIndex+2) && FirstIndex is 0-based
o = 1
do while .T.
n = at_c(m.c, m.s, m.o)
if .F.;
or m.n <= 1;
or !(m.JSstring and Substrc(m.s, m.n-1, 1) == '\') && Substrc('toto', 0, 1) fonctionne
exit
else
o = m.o + 1
endif
enddo
if Empty(m.n)
assert false message [String delimiter mismatch]
->->-> success = false && THIS IS THE LINE WHERE DEBUG IS POSITIONED
exit
else
n = 1 + m.n && include start delimiter
masked = stuffc( ;
m.masked, ;
m.matchObj.FirstIndex+1, ; && FirstIndex is 0-based
m.n, ;
replicate('~', m.n) ;
)endif
enddo
endcase
return m.success
endfunc
-- thn (FoxInCloud)