15c6c1daeSBarry Smith #include <petsc-private/fortranimpl.h> 25c6c1daeSBarry Smith 35c6c1daeSBarry Smith 4*519f805aSKarl Rupp #if defined(PETSC_HAVE_FORTRAN_CAPS) 55c6c1daeSBarry Smith #define petscinfo_ PETSCINFO 65c6c1daeSBarry Smith #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE) 75c6c1daeSBarry Smith #define petscinfo_ petscinfo 85c6c1daeSBarry Smith #endif 95c6c1daeSBarry Smith 105c6c1daeSBarry Smith EXTERN_C_BEGIN 115c6c1daeSBarry Smith 125c6c1daeSBarry Smith #undef __FUNCT__ 135c6c1daeSBarry Smith #define __FUNCT__ "PetscFixSlashN" 145c6c1daeSBarry Smith static PetscErrorCode PetscFixSlashN(const char *in, char **out) 155c6c1daeSBarry Smith { 165c6c1daeSBarry Smith PetscErrorCode ierr; 175c6c1daeSBarry Smith PetscInt i; 185c6c1daeSBarry Smith size_t len; 195c6c1daeSBarry Smith 205c6c1daeSBarry Smith PetscFunctionBegin; 215c6c1daeSBarry Smith ierr = PetscStrallocpy(in,out);CHKERRQ(ierr); 225c6c1daeSBarry Smith ierr = PetscStrlen(*out,&len);CHKERRQ(ierr); 235c6c1daeSBarry Smith for (i=0; i<(int)len-1; i++) { 245c6c1daeSBarry Smith if ((*out)[i] == '\\' && (*out)[i+1] == 'n') {(*out)[i] = ' '; (*out)[i+1] = '\n';} 255c6c1daeSBarry Smith } 265c6c1daeSBarry Smith PetscFunctionReturn(0); 275c6c1daeSBarry Smith } 285c6c1daeSBarry Smith 295c6c1daeSBarry Smith void PETSC_STDCALL petscinfo_(CHAR text PETSC_MIXED_LEN(len1),PetscErrorCode *ierr PETSC_END_LEN(len1)) 305c6c1daeSBarry Smith { 315c6c1daeSBarry Smith char *c1,*tmp; 325c6c1daeSBarry Smith 335c6c1daeSBarry Smith FIXCHAR(text,len1,c1); 345c6c1daeSBarry Smith *ierr = PetscFixSlashN(c1,&tmp);if (*ierr) return; 355c6c1daeSBarry Smith *ierr = PetscInfo(PETSC_NULL,tmp);if (*ierr) return; 365c6c1daeSBarry Smith *ierr = PetscFree(tmp);if (*ierr) return; 375c6c1daeSBarry Smith FREECHAR(text,c1); 385c6c1daeSBarry Smith } 395c6c1daeSBarry Smith 405c6c1daeSBarry Smith EXTERN_C_END 41