Ignore:
Timestamp:
Sep 21, 2014, 8:45:02 AM (11 years ago)
Author:
Alex Taylor
Message:

More work on named-pipe and I/O functions. Added some test cases for the new functionality. Updated documentation.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • rxutilex/trunk/rxutilex.c

    r16 r17  
    17131713 * Sys2Close                                                                 *
    17141714 *                                                                           *
    1715  * Wrapper to DosWrite: write bytes to a previously-opened stream.           *
     1715 * Wrapper to DosClose: close a file/stream.                                 *
    17161716 *                                                                           *
    17171717 * REXX ARGUMENTS:                                                           *
     
    17911791        strupr( argv[2].strptr );
    17921792        if ( strcspn(argv[2].strptr, "BCE") > 0 ) return ( 40 );
    1793         switch ( argv[1].strptr[0] ) {
     1793        switch ( argv[2].strptr[0] ) {
    17941794            case 'B': ulMethod = FILE_BEGIN;   break;
    17951795            case 'E': ulMethod = FILE_END;     break;
     
    18741874 *                                                                           *
    18751875 * REXX RETURN VALUE:                                                        *
    1876  *   1 on success, or 0 if an error occurred.                                *
     1876 *   Number of bytes written.                                                *
    18771877 * ------------------------------------------------------------------------- */
    18781878ULONG APIENTRY Sys2Write( PSZ pszName, ULONG argc, RXSTRING argv[], PSZ pszQueue, PRXSTRING prsResult )
     
    18801880    HFILE  hf;
    18811881    ULONG  cbActual;
     1882    CHAR   szActual[ US_INTEGER_MAXZ ];
    18821883    APIRET rc;
    18831884
     
    18941895    // (Second argument can be left in standard RXSTRING form)
    18951896
    1896     rc = DosWrite( hf, argv[0].strptr, argv[0].strlength, &cbActual );
     1897    rc = DosWrite( hf, argv[1].strptr, argv[1].strlength, &cbActual );
    18971898    if ( rc != NO_ERROR ) {
    18981899        WriteErrorCode( rc, "DosWrite");
    18991900        MAKERXSTRING( *prsResult, "0", 1 );
    1900     }
    1901     else {
    1902         MAKERXSTRING( *prsResult, "1", 1 );
    1903     }
    1904 
     1901        return ( 0 );
     1902    }
     1903
     1904    sprintf( szActual, "%d", cbActual );
     1905    MAKERXSTRING( *prsResult, szActual, strlen( szActual ));
    19051906    return ( 0 );
    19061907}
     
    21822183
    21832184    if ( pszContext == NULL )
    2184         sprintf( szErrorText, "%X", ulError );
     2185        sprintf( szErrorText, "%u", ulError );
    21852186    else
    2186         sprintf( szErrorText, "%X: %s", ulError, pszContext );
     2187        sprintf( szErrorText, "%u: %s", ulError, pszContext );
    21872188    MAKERXSTRING( shvVar.shvname,  SZ_ERROR_NAME, strlen(SZ_ERROR_NAME) );
    21882189    MAKERXSTRING( shvVar.shvvalue, szErrorText,   strlen(szErrorText) );
Note: See TracChangeset for help on using the changeset viewer.