xref: /petsc/src/sys/info/ftn-custom/zverboseinfof.c (revision 5e71baeff2f3138f93cd4f5927dfd596eb8325cc)
1 #include <petsc/private/fortranimpl.h>
2 
3 
4 #if defined(PETSC_HAVE_FORTRAN_CAPS)
5 #define petscinfo_ PETSCINFO
6 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
7 #define petscinfo_ petscinfo
8 #endif
9 
10 static PetscErrorCode PetscFixSlashN(const char *in, char **out)
11 {
12   PetscErrorCode ierr;
13   PetscInt       i;
14   size_t         len;
15 
16   PetscFunctionBegin;
17   ierr = PetscStrallocpy(in,out);CHKERRQ(ierr);
18   ierr = PetscStrlen(*out,&len);CHKERRQ(ierr);
19   for (i=0; i<(int)len-1; i++) {
20     if ((*out)[i] == '\\' && (*out)[i+1] == 'n') {(*out)[i] = ' '; (*out)[i+1] = '\n';}
21   }
22   PetscFunctionReturn(0);
23 }
24 
25 PETSC_EXTERN void PETSC_STDCALL petscinfo_(char* text PETSC_MIXED_LEN(len1),PetscErrorCode *ierr PETSC_END_LEN(len1))
26 {
27   char *c1,*tmp;
28 
29   FIXCHAR(text,len1,c1);
30   *ierr = PetscFixSlashN(c1,&tmp);if (*ierr) return;
31   FREECHAR(text,c1);
32   *ierr = PetscInfo(NULL,tmp);if (*ierr) return;
33   *ierr = PetscFree(tmp);
34 }
35