home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / CSAPE32.ARJ / SOURCE / CSSRC / FNSLONG.C < prev    next >
C/C++ Source or Header  |  1990-03-28  |  2KB  |  74 lines

  1. /*
  2.     fnslong.c             10/2/87
  3.  
  4.     % slong_funcs
  5.  
  6.     Long editing functions.
  7.     These funcs edit longs in a string_like fashion.
  8.     The field variable should be a long *.
  9.  
  10.     C-scape 3.2
  11.     Copyright (c) 1986, 1987, 1988 by Oakland Group, Inc.
  12.     ALL RIGHTS RESERVED.
  13.  
  14.     Revision History:
  15.     -----------------
  16.      5/12/88 jmd    added calls to sed_GetScratchPad()
  17.      9/15/88 jmd     removed vid_Cursor calls
  18.      9/17/88 jmd    added global error msg strings for easy changing
  19.      9/17/88 jmd     added std_ funcs
  20.     10/06/88 jmd    added stdBigCur_fenter
  21.     10/09/88 jmd     added SED_ABORT support
  22.     10/14/88 jdc    added var_size element to field_funcs_struct
  23.  
  24.      6/03/89 jmd    added strclip to senter func
  25.      3/28/90 jmd    ansi-fied
  26. */
  27.  
  28. #include <stdio.h>
  29. #include <ctype.h>
  30. #include <string.h>
  31.  
  32. #include "cscape.h"
  33. #include "ostdlib.h"        /* for atol() */
  34.  
  35. #include "fnfunc.h"            /* for field functions */
  36. #include "strdecl.h"        /* for C-scape string functions */
  37. #include "scancode.h"
  38.  
  39. OGLOBAL field_funcs_struct slong_funcs = {
  40.     stdBigCur_fenter,
  41.     long_fexit,
  42.     sint_fkey,
  43.     slong_senter,
  44.     slong_sexit,
  45.     sizeof(long)
  46. };
  47.  
  48. void slong_senter(sed_type sed, int fieldno)
  49. /*
  50.     Convert the native long into the record string.
  51. */
  52. {
  53.     sprintf(sed_GetScratchPad(sed), "%ld", *((long *) sed_GetVar(sed, fieldno)));
  54.     strleft(sed_GetScratchPad(sed), sed_GetRecordLen(sed, fieldno));
  55.     strclip(sed_GetScratchPad(sed));
  56.     sed_SetRecord(sed, sed_GetScratchPad(sed), fieldno);
  57.  
  58.     std_senter(sed, fieldno);
  59. }
  60.  
  61. void slong_sexit(sed_type sed, int fieldno)
  62. /*
  63.     Convert the record string back into the native long.
  64.     Remove commas from string first.
  65. */
  66. {
  67.     if (sed_GetBaton(sed) != SED_ABORT) {
  68.         strcpy(sed_GetScratchPad(sed), sed_GetRecord(sed, fieldno));
  69.         strnocomma(sed_GetScratchPad(sed));
  70.         *((long *) sed_GetVar(sed, fieldno)) = atol(sed_GetScratchPad(sed));
  71.     }
  72. }
  73.  
  74.