xref: /petsc/src/sys/utils/ftn-custom/zstrf.c (revision 02f1c2d0737cbecdb61f912a046d7b7d95fc755b)
1af0996ceSBarry Smith #include <petsc/private/fortranimpl.h>
255fcb7f5SSatish Balay 
355fcb7f5SSatish Balay #if defined(PETSC_HAVE_FORTRAN_CAPS)
455fcb7f5SSatish Balay #define petscstrncpy_              PETSCSTRNCPY
555fcb7f5SSatish Balay #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
655fcb7f5SSatish Balay #define petscstrncpy_              petscstrncpy
755fcb7f5SSatish Balay #endif
855fcb7f5SSatish Balay 
9390e1bf2SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscstrncpy_(char* s1 PETSC_MIXED_LEN(len1),char* s2 PETSC_MIXED_LEN(len2),int *n,
1055fcb7f5SSatish Balay                                  PetscErrorCode *ierr PETSC_END_LEN(len1) PETSC_END_LEN(len2))
1155fcb7f5SSatish Balay {
1255fcb7f5SSatish Balay   char *t1,*t2;
13*02f1c2d0SLisandro Dalcin   PETSC_FORTRAN_CHARLEN_T m;
1455fcb7f5SSatish Balay 
1555fcb7f5SSatish Balay   t1    = s1;
1655fcb7f5SSatish Balay   t2    = s2;
17*02f1c2d0SLisandro Dalcin   m     = (PETSC_FORTRAN_CHARLEN_T) *n; if (len1 < m) m = len1;if (len2 < m) m = len2;
1855fcb7f5SSatish Balay   *ierr = PetscStrncpy(t1,t2,m);
1955fcb7f5SSatish Balay }
20