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: }