Actual source code: zverboseinfof.c
1: #include <petsc/private/ftnimpl.h>
3: #if PetscDefined(HAVE_FORTRAN_CAPS)
4: #define petscinfo_ PETSCINFO
5: #elif !PetscDefined(HAVE_FORTRAN_UNDERSCORE)
6: #define petscinfo_ petscinfo
7: #endif
9: static PetscErrorCode PetscFixSlashN(const char *in, char **out)
10: {
11: size_t len;
13: PetscFunctionBegin;
14: PetscCall(PetscStrallocpy(in, out));
15: PetscCall(PetscStrlen(*out, &len));
16: for (PetscInt i = 0; i < (int)len - 1; i++) {
17: if ((*out)[i] == '\\' && (*out)[i + 1] == 'n') {
18: (*out)[i] = ' ';
19: (*out)[i + 1] = '\n';
20: }
21: }
22: PetscFunctionReturn(PETSC_SUCCESS);
23: }
25: PETSC_EXTERN void petscinfo_(char *text, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len1)
26: {
27: char *c1, *tmp;
29: FIXCHAR(text, len1, c1);
30: *ierr = PetscFixSlashN(c1, &tmp);
31: if (*ierr) return;
32: FREECHAR(text, c1);
33: *ierr = PetscInfo(NULL, "%s", tmp);
34: if (*ierr) return;
35: *ierr = PetscFree(tmp);
36: }