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