1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 /* 23 * t_readline.c 24 */ 25 26 #include "osl/file.h" 27 28 #include "osl/diagnose.h" 29 #include "rtl/ustring.h" 30 #include "rtl/byteseq.h" 31 32 #include <stdio.h> 33 34 /* main */ 35 int main (int argc, char ** argv) 36 { 37 if (argc > 1) 38 { 39 oslFileError result; 40 oslFileHandle hFile = 0; 41 42 rtl_uString * pSystemPath = 0; 43 rtl_uString * pFileUrl = 0; 44 45 rtl_uString_newFromAscii (&pSystemPath, argv[1]); 46 47 result = osl_getFileURLFromSystemPath (pSystemPath, &pFileUrl); 48 rtl_uString_release (pSystemPath), pSystemPath = 0; 49 if (result != osl_File_E_None) 50 return (result); 51 52 result = osl_openFile (pFileUrl, &hFile, osl_File_OpenFlag_Read); 53 rtl_uString_release (pFileUrl), pFileUrl = 0; 54 if (result == osl_File_E_None) 55 { 56 sal_Sequence * pBuffer = 0; 57 for ( ;; ) 58 { 59 sal_Int32 i, n; 60 61 result = osl_readLine (hFile, &pBuffer); 62 if (result != osl_File_E_None) 63 break; 64 #if 0 65 if (pBuffer->elements[0] == 0) 66 /* @@@ cannot distinguish empty line from EOF @@@ */ 67 break; 68 #endif 69 for (i = 0, n = pBuffer->nElements; i < n; i++) 70 printf ("%c", (char)(pBuffer->elements[i])); 71 printf("\n"); 72 } 73 74 rtl_byte_sequence_release (pBuffer), pBuffer = 0; 75 (void) osl_closeFile (hFile); 76 } 77 } 78 return 0; 79 } 80