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

  1. /*
  2.     fndigit.c
  3.  
  4.     % digit_funcs
  5.  
  6.     String editing functions (digits only).
  7.     Supports insert mode (with big cursor).
  8.     The field variable should be a char *.
  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.      4/06/88 jmd     added call to sed_DoSpecial
  17.      9/15/88 jmd     removed vid_Cursor calls
  18.      9/17/88 jmd     added std_ funcs
  19.     10/14/88 jdc    added var_size element to field_funcs_struct
  20.  
  21.      6/07/89 jmd    added test for mouse code (later removed)
  22.     10/17/89 jdc    fixed filter (no extended ascii)
  23.      3/28/90 jmd    ansi-fied
  24. */
  25.  
  26. #include <stdio.h>
  27. #include <string.h>
  28. #include <ctype.h>
  29.  
  30. #include "cscape.h"
  31. #include "fnfunc.h"            /* for field functions */
  32. #include "scancode.h"
  33.  
  34. OSTATIC sfilter_func (digit_filter);
  35.  
  36. OGLOBAL field_funcs_struct digit_funcs = {
  37.     stdBigCur_fenter,
  38.     string_fexit,
  39.     digit_fkey,
  40.     string_senter,
  41.     string_sexit,
  42.     VAR_STRING
  43. };
  44.  
  45. void digit_fkey(sed_type sed)
  46. /*
  47.     Hands its work to StrCommon_fkey (fnstrcom.c)
  48.     Passes a filter function (below) to decide which
  49.     characters can be typed in.
  50. */
  51. {
  52.     StrCommon_fkey(sed, digit_filter);
  53. }
  54.  
  55. static boolean digit_filter(int key)
  56. /*
  57.     Filter function for digit_funcs
  58.     for use with StrCommon_fkey
  59. */
  60. {
  61.     return(isprint(key) && isdigit(key));
  62. }
  63.