1*5c6c1daeSBarry Smith #include <petsc-private/fortranimpl.h> 2*5c6c1daeSBarry Smith 3*5c6c1daeSBarry Smith 4*5c6c1daeSBarry Smith #ifdef PETSC_HAVE_FORTRAN_CAPS 5*5c6c1daeSBarry Smith #define petscinfo_ PETSCINFO 6*5c6c1daeSBarry Smith #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE) 7*5c6c1daeSBarry Smith #define petscinfo_ petscinfo 8*5c6c1daeSBarry Smith #endif 9*5c6c1daeSBarry Smith 10*5c6c1daeSBarry Smith EXTERN_C_BEGIN 11*5c6c1daeSBarry Smith 12*5c6c1daeSBarry Smith #undef __FUNCT__ 13*5c6c1daeSBarry Smith #define __FUNCT__ "PetscFixSlashN" 14*5c6c1daeSBarry Smith static PetscErrorCode PetscFixSlashN(const char *in, char **out) 15*5c6c1daeSBarry Smith { 16*5c6c1daeSBarry Smith PetscErrorCode ierr; 17*5c6c1daeSBarry Smith PetscInt i; 18*5c6c1daeSBarry Smith size_t len; 19*5c6c1daeSBarry Smith 20*5c6c1daeSBarry Smith PetscFunctionBegin; 21*5c6c1daeSBarry Smith ierr = PetscStrallocpy(in,out);CHKERRQ(ierr); 22*5c6c1daeSBarry Smith ierr = PetscStrlen(*out,&len);CHKERRQ(ierr); 23*5c6c1daeSBarry Smith for (i=0; i<(int)len-1; i++) { 24*5c6c1daeSBarry Smith if ((*out)[i] == '\\' && (*out)[i+1] == 'n') {(*out)[i] = ' '; (*out)[i+1] = '\n';} 25*5c6c1daeSBarry Smith } 26*5c6c1daeSBarry Smith PetscFunctionReturn(0); 27*5c6c1daeSBarry Smith } 28*5c6c1daeSBarry Smith 29*5c6c1daeSBarry Smith void PETSC_STDCALL petscinfo_(CHAR text PETSC_MIXED_LEN(len1),PetscErrorCode *ierr PETSC_END_LEN(len1)) 30*5c6c1daeSBarry Smith { 31*5c6c1daeSBarry Smith char *c1,*tmp; 32*5c6c1daeSBarry Smith 33*5c6c1daeSBarry Smith FIXCHAR(text,len1,c1); 34*5c6c1daeSBarry Smith *ierr = PetscFixSlashN(c1,&tmp);if (*ierr) return; 35*5c6c1daeSBarry Smith *ierr = PetscInfo(PETSC_NULL,tmp);if (*ierr) return; 36*5c6c1daeSBarry Smith *ierr = PetscFree(tmp);if (*ierr) return; 37*5c6c1daeSBarry Smith FREECHAR(text,c1); 38*5c6c1daeSBarry Smith } 39*5c6c1daeSBarry Smith 40*5c6c1daeSBarry Smith EXTERN_C_END 41