home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / CSAPE32.ARJ / SOURCE / CSSRC / UFNCSAVE.C < prev    next >
C/C++ Source or Header  |  1990-11-01  |  1KB  |  70 lines

  1. /*
  2.     ufncsave.c
  3.  
  4.     % ufuncreq_save
  5.  
  6.     C-scape 3.2
  7.     Copyright (c) 1988, 1989 by Oakland Group, Inc.
  8.     ALL RIGHTS RESERVED.
  9.  
  10.     Revision History:
  11.     -----------------
  12.      3/28/90 jmd    ansi-fied
  13.     11/01/90 ted    put (void) in arg list of ufunc_SaveInit.
  14. */
  15.  
  16. #include "sed.h"
  17. #include "ufuncobj.h"
  18. #include "ufuncod.h"
  19. #include "sfile.h"
  20. #include "sfilpriv.h"
  21.  
  22. OSTATIC objreq_func (ufuncreq_save);
  23.  
  24. void ufunc_SaveInit(void)
  25. {
  26.     ufuncreq_savefptr = ufuncreq_save;
  27. }
  28.  
  29. static int ufuncreq_save(VOID *objdata, int msg, VOID *indata, VOID *outdata)
  30. /*
  31.     save code for ufunc objects
  32. */
  33. {
  34.     ufunc_od *ufdp;
  35.     sfile_type sfile;
  36.     bob_type bob;
  37.     char *name;
  38.  
  39.     oak_notused(outdata);
  40.     oak_notused(msg);
  41.  
  42.     ufdp = (ufunc_od *)objdata;
  43.     sfile = (sfile_type)indata;
  44.     bob = ufuncod_GetSelf(ufdp);
  45.  
  46.     /* ufunc info:
  47.         idata, ufunc name
  48.     */
  49.     name = (ufuncbob_GetFuncHandle(bob) == -1) ? 
  50.         ((ufdp->ufunc == FNULL) ? "" : sfile_FindUserName(sfile, ufdp->ufunc))
  51.         : ufunc_GetUserName(bob, sfile);
  52.  
  53.     sprintf(sfile->buf, "%d\n%s\n", ufdp->idata, fsym_NullCheck(name));
  54.  
  55.     return(bfile_Write(sfile->bfile, sfile->buf, strlen(sfile->buf)));
  56. }
  57.  
  58. char *ufunc_FindUserName(bob_type bob, sfile_type sfile)
  59. /*
  60. */
  61. {
  62.     ufuncopen_struct ufuncopen;
  63.  
  64.     bob_Do(bob, UFUNCBM_GETUFUNC, NULL, &ufuncopen);
  65.  
  66.     return((ufuncbob_GetFuncHandle(bob) == -1) ? 
  67.         sfile_FindUserName(sfile, ufuncopen.ufunc) 
  68.         : ufunc_GetUserName(bob, sfile));
  69. }
  70.