00001 /* This file is part of MED. 00002 * 00003 * COPYRIGHT (C) 1999 - 2011 EDF R&D, CEA/DEN 00004 * MED is free software: you can redistribute it and/or modify 00005 * it under the terms of the GNU Lesser General Public License as published by 00006 * the Free Software Foundation, either version 3 of the License, or 00007 * (at your option) any later version. 00008 * 00009 * MED is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public License 00015 * along with MED. If not, see <http://www.gnu.org/licenses/>. 00016 */ 00017 00018 #include <med.h> 00019 #include <med_config.h> 00020 #include <med_outils.h> 00021 00022 #include <string.h> 00023 00024 #include <2.3.6/med23v30.h> 00025 #include <2.3.6/med23v30_proto.h> 00026 #include "2.3.6/med23v30_misc.h" 00027 00028 void _MEDfileCommentRd236(int dummy, ...) { 00029 00030 va_list params; 00031 va_start(params,dummy); 00032 00033 const med_idt fid = va_arg(params,const med_idt); 00034 char* const comment = va_arg(params,char* const ); 00035 med_err * fret = va_arg(params,med_err *); 00036 00037 med_err _ret=-1; 00038 med_int _len=0; 00039 char * _tmpdes = comment; 00040 00041 if ( (_len = MEDlFichDes(fid)) < 0 ) { 00042 _ret=MED_ERR_DOESNTEXIST; 00043 goto ERROR; 00044 } 00045 00046 if (_len > MED_COMMENT_SIZE) 00047 _tmpdes = malloc(sizeof(char)*_len+1); 00048 00049 if ( MEDfichEntete(fid, MED_FICH_DES, _tmpdes ) < 0 ) { 00050 _ret=MED_ERR_DOESNTEXIST; 00051 goto ERROR; 00052 } 00053 00054 if (_len > MED_COMMENT_SIZE) { 00055 strncpy(comment,_tmpdes,MED_COMMENT_SIZE); 00056 comment[MED_COMMENT_SIZE]='\0'; 00057 } 00058 00059 if (_len > MED_COMMENT_SIZE) free(_tmpdes); 00060 00061 _ret=0; 00062 ERROR : 00063 00064 va_end(params); 00065 *fret = _ret; 00066 return; 00067 }