1 /* 2 * t_readline.c 3 */ 4 5 #include "osl/file.h" 6 7 #include "osl/diagnose.h" 8 #include "rtl/ustring.h" 9 #include "rtl/byteseq.h" 10 11 #include <stdio.h> 12 13 /* main */ 14 int main (int argc, char ** argv) 15 { 16 if (argc > 1) 17 { 18 oslFileError result; 19 oslFileHandle hFile = 0; 20 21 rtl_uString * pSystemPath = 0; 22 rtl_uString * pFileUrl = 0; 23 24 rtl_uString_newFromAscii (&pSystemPath, argv[1]); 25 26 result = osl_getFileURLFromSystemPath (pSystemPath, &pFileUrl); 27 rtl_uString_release (pSystemPath), pSystemPath = 0; 28 if (result != osl_File_E_None) 29 return (result); 30 31 result = osl_openFile (pFileUrl, &hFile, osl_File_OpenFlag_Read); 32 rtl_uString_release (pFileUrl), pFileUrl = 0; 33 if (result == osl_File_E_None) 34 { 35 sal_Sequence * pBuffer = 0; 36 for ( ;; ) 37 { 38 sal_Int32 i, n; 39 40 result = osl_readLine (hFile, &pBuffer); 41 if (result != osl_File_E_None) 42 break; 43 #if 0 44 if (pBuffer->elements[0] == 0) 45 /* @@@ cannot distinguish empty line from EOF @@@ */ 46 break; 47 #endif 48 for (i = 0, n = pBuffer->nElements; i < n; i++) 49 printf ("%c", (char)(pBuffer->elements[i])); 50 printf("\n"); 51 } 52 53 rtl_byte_sequence_release (pBuffer), pBuffer = 0; 54 (void) osl_closeFile (hFile); 55 } 56 } 57 return 0; 58 } 59