Hi,

I am using the system function on NetWare. I find the following strange
error:

1. If I use single quoted strings, then I don't have any problem with
any combination of the slash.
        system('sys:\system\p.nlm');    // WORKS
        system('sys:\\system\\p.nlm');  // WORKS
        system('sys:\system\r.nlm');    // WORKS
        system('sys:\\system\\r.nlm');  // WORKS

2. If I use doble quoted string then it works in these cases:
        system("sys:\system\p.nlm");    // WORKS
        system("sys:\\system\\p.nlm");  // WORKS
        system("sys:\\system\\r.nlm");  // WORKS

3. If I use double quoted string and I use single slash and the nlm
name starts with 'n' or 'r' or 't', then the system function call fails
to load the nlm thought the nlm is present in the given location. That
is the below does not work:
        system("sys:\system\r.nlm");    // WORKS

This erros appears to be strange with only three letters not being
allowed. Can anyone throw some light as to what is happening here? Could
there be a mistake in the NetWare port?

I have debugged to the point that:
- In zend_execute.c, the execution comes to the execute function.
- Inside that it comes upto  case ZEND_DO_FCALL:
- There is gets into the ZEND_INTERNAL_FUNCTION where it does a
ALLOC_ZVAL and INIT_ZVAL.
- Then it calls the correspoing Internal Function which in this case is
system.
- Inside the system function, if we pring the Z_STRVAL_PP(arg1), we
find that it is only contains value like sys:\system for the last case
(mentioned above) for which there is error.

Thanks,
Ananth.


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to