Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ rpmatch(3) — Digital UNIX 3.2c

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

grep(1)

regcomp(3)

regexec(3)

setlocale(3)

locale(4)

rpmatch(3)  —  Subroutines

NAME

rpmatch − Determines whether a response is affirmative or negative

LIBRARY

Standard C Library (libc.a)

SYNOPSIS

#include <stdlib.h> int rpmatch(
const char ∗response);

PARAMETERS

responseUser input entered in response to a question that requires an affirmative or negative answer. 

DESCRIPTION

The rpmatch() function determines whether the string value of the response parameter matches the affirmative or negative response expression as specified by the LC_MESSAGES category in the program’s current locale.  Both response expressions, defined in the locale, may be extended regular expressions. 

A possible value of the affirmative expression, yesexpr, for a English-language locale is "^([yY]|[yY][eE][sS])".  This expression will match any value of the response parameter that has consists of the letter Y (in uppercase or lowercase) or the letters YES (in any mixture of uppercase and lowercase letters). 

EXAMPLES

The following example requests a response from the user and uses the rpmatch() function to determine if the response is affirmative or negative. 

#include <stdlib.h>
#include <stdio.h>
#include <locale.h>
#include <string.h>
#define SLENGTH 80
main()
{
    char    str[SLENGTH], ∗eol;
    int    ans;
    (void)setlocale(LC_ALL, "");
    printf("Do you want to perform this operation: ");
    fgets(str, SLENGTH, stdin);
    if ((eol = strchr(str, ’\n’)) != NULL)
        ∗eol = ’\0’;  /∗ Replace newline with null ∗/
    else
        return;  /∗ Line entered too long ∗/
    ans = rpmatch(str);
    if (ans == 1)
        printf("You responded affirmatively\n");
    else if (ans == 0)
        printf("You responded negatively\n");
    else
    printf("Your answer did not match\n");
}

RETURN VALUES

A value of 1 is returned if the string value of the response parameter is matched by the affirmative expression; a value of 0 (zero) is returned if the string value of the response parameter is matched by the negative expression. If neither expression matches the string value of the response parameter, a value of -1 is returned. 

RELATED INFORMATION

Commands: grep(1). 

Functions: regcomp(3), regexec(3), setlocale(3). 

Files: locale(4). 

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026