xref: /petsc/src/sys/info/ftn-custom/zverboseinfof.c (revision bebe2cf65d55febe21a5af8db2bd2e168caaa2e7)
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 #undef __FUNCT__
11 #define __FUNCT__ "PetscFixSlashN"
12 static PetscErrorCode PetscFixSlashN(const char *in, char **out)
13 {
14   PetscErrorCode ierr;
15   PetscInt       i;
16   size_t         len;
17 
18   PetscFunctionBegin;
19   ierr = PetscStrallocpy(in,out);CHKERRQ(ierr);
20   ierr = PetscStrlen(*out,&len);CHKERRQ(ierr);
21   for (i=0; i<(int)len-1; i++) {
22     if ((*out)[i] == '\\' && (*out)[i+1] == 'n') {(*out)[i] = ' '; (*out)[i+1] = '\n';}
23   }
24   PetscFunctionReturn(0);
25 }
26 
27 PETSC_EXTERN void PETSC_STDCALL petscinfo_(CHAR text PETSC_MIXED_LEN(len1),PetscErrorCode *ierr PETSC_END_LEN(len1))
28 {
29   char *c1,*tmp;
30 
31   FIXCHAR(text,len1,c1);
32   *ierr = PetscFixSlashN(c1,&tmp);if (*ierr) return;
33   FREECHAR(text,c1);
34   *ierr = PetscInfo(NULL,tmp);if (*ierr) return;
35   *ierr = PetscFree(tmp);
36 }
37