xref: /petsc/src/sys/info/ftn-custom/zverboseinfof.c (revision b0dcfd164860a975c76f90dabf1036901aab1c4e)
1*6dd63270SBarry Smith #include <petsc/private/ftnimpl.h>
25c6c1daeSBarry Smith 
3519f805aSKarl Rupp #if defined(PETSC_HAVE_FORTRAN_CAPS)
45c6c1daeSBarry Smith   #define petscinfo_ PETSCINFO
58a6b6cadSSatish Balay #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
65c6c1daeSBarry Smith   #define petscinfo_ petscinfo
75c6c1daeSBarry Smith #endif
85c6c1daeSBarry Smith 
PetscFixSlashN(const char * in,char ** out)95c6c1daeSBarry Smith static PetscErrorCode PetscFixSlashN(const char *in, char **out)
105c6c1daeSBarry Smith {
115c6c1daeSBarry Smith   PetscInt i;
125c6c1daeSBarry Smith   size_t   len;
135c6c1daeSBarry Smith 
145c6c1daeSBarry Smith   PetscFunctionBegin;
159566063dSJacob Faibussowitsch   PetscCall(PetscStrallocpy(in, out));
169566063dSJacob Faibussowitsch   PetscCall(PetscStrlen(*out, &len));
175c6c1daeSBarry Smith   for (i = 0; i < (int)len - 1; i++) {
185975b3b6SBarry Smith     if ((*out)[i] == '\\' && (*out)[i + 1] == 'n') {
195975b3b6SBarry Smith       (*out)[i]     = ' ';
205975b3b6SBarry Smith       (*out)[i + 1] = '\n';
215975b3b6SBarry Smith     }
225c6c1daeSBarry Smith   }
233ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
245c6c1daeSBarry Smith }
255c6c1daeSBarry Smith 
petscinfo_(char * text,PetscErrorCode * ierr,PETSC_FORTRAN_CHARLEN_T len1)2619caf8f3SSatish Balay PETSC_EXTERN void petscinfo_(char *text, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len1)
275c6c1daeSBarry Smith {
285c6c1daeSBarry Smith   char *c1, *tmp;
295c6c1daeSBarry Smith 
305c6c1daeSBarry Smith   FIXCHAR(text, len1, c1);
315975b3b6SBarry Smith   *ierr = PetscFixSlashN(c1, &tmp);
325975b3b6SBarry Smith   if (*ierr) return;
335c6c1daeSBarry Smith   FREECHAR(text, c1);
345975b3b6SBarry Smith   *ierr = PetscInfo(NULL, "%s", tmp);
355975b3b6SBarry Smith   if (*ierr) return;
368bceffaeSBarry Smith   *ierr = PetscFree(tmp);
375c6c1daeSBarry Smith }
38