xref: /petsc/src/sys/utils/ftn-custom/zstrf.c (revision c8cd8b03a8e69285ecfea39db41c0ff684948fa5)
1 #include "private/zpetsc.h"
2 #include "petsc.h"
3 
4 #if defined(PETSC_HAVE_FORTRAN_CAPS)
5 #define petscstrncpy_              PETSCSTRNCPY
6 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
7 #define petscstrncpy_              petscstrncpy
8 #endif
9 
10 EXTERN_C_BEGIN
11 void PETSC_STDCALL petscstrncpy_(CHAR s1 PETSC_MIXED_LEN(len1),CHAR s2 PETSC_MIXED_LEN(len2),int *n,
12                                  PetscErrorCode *ierr PETSC_END_LEN(len1) PETSC_END_LEN(len2))
13 {
14   char *t1,*t2;
15   int  m;
16 
17 #if defined(PETSC_USES_CPTOFCD)
18   t1 = _fcdtocp(s1);
19   t2 = _fcdtocp(s2);
20   m = *n; if (_fcdlen(s1) < m) m = _fcdlen(s1); if (_fcdlen(s2) < m) m = _fcdlen(s2);
21 #else
22   t1 = s1;
23   t2 = s2;
24   m = *n; if (len1 < m) m = len1; if (len2 < m) m = len2;
25 #endif
26   *ierr = PetscStrncpy(t1,t2,m);
27 }
28 
29 EXTERN_C_END
30