Put a new implementation in the bugreport.
Did not test the "wah is an illegal chatacter", IMO that should be a
seperate issue.

Currently based upon these rules:

{
  Concatenates the paths.
  If one or more of the paths is absolute, it will use the right most
absolute path as
  base path and then concatenates the remaining paths to that.
  E.g. ['\a','b','\c','d'] will return '\c\d';
  If ValidateParam is True, and any of the paths contains an invalid
path character
  an exception is raised.
  No checks are done wether or not a given paths exists.
  E.g. ['\a','b','\c:'] will hapilly return the non-sensical path '\c:'
}


My tests now give these results:

OK:   ['']: Got: '', Expected: ''
OK:   ['','']: Got: '', Expected: ''
OK:   ['','','']: Got: '', Expected: ''
OK:   ['a','b','c']: Got: 'a\b\c', Expected: 'a\b\c'
OK:   ['a','b','\c']: Got: '\c', Expected: '\c'
OK:   ['a','\b','c']: Got: '\b\c', Expected: '\b\c'
OK:   ['\a','\b','c']: Got: '\b\c', Expected: '\b\c'
OK:   ['\a','\b','\c']: Got: '\c', Expected: '\c'
OK:   ['\a','b','\c:']: Got: '\c:', Expected: '\c:'
OK:   ['a','<>','\b','c','\d'] --> EArgumentException, (as expected)
FAIL: ['c:','a','b']: Got: 'c:\a\b', Expected: '?'  <== don't know
what the expected value should be here

NOT ValidateParams
OK:   ['']: Got: '', Expected: ''
OK:   ['','']: Got: '', Expected: ''
OK:   ['','','']: Got: '', Expected: ''
OK:   ['a','b','c']: Got: 'a\b\c', Expected: 'a\b\c'
OK:   ['a','b','\c']: Got: '\c', Expected: '\c'
OK:   ['a','\b','c']: Got: '\b\c', Expected: '\b\c'
OK:   ['\a','\b','c']: Got: '\b\c', Expected: '\b\c'
OK:   ['\a','\b','\c']: Got: '\c', Expected: '\c'
OK:   ['\a','b','\c:']: Got: '\c:', Expected: '\c:'
OK:   ['a','<>','\b','c','\d']: Got: '\d', Expected: '\d'

--
Bart
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to