Reuse, not rework
Home

License Awareness



Highly Reusable Software

By activity
Professions, Sciences, Humanities, Business, ...

User Interface
Text-based, GUI, Audio, Video, Keyboards, Mouse, Images,...

Text Strings
Conversions, tests, processing, manipulation,...

Math
Integer, Floating point, Matrix, Statistics, Boolean, ...

Processing
Algorithms, Memory, Process control, Debugging, ...

Stored Data
Data storage, Integrity, Encryption, Compression, ...

Communications
Networks, protocols, Interprocess, Remote, Client Server, ...

Hard World
Timing, Calendar and Clock, Audio, Video, Printer, Controls...

File System
Management, Filtering, File & Directory access, Viewers, ...


NAME

librock_HTTP_astrSetFieldUrlEncode - replace the value for a field in an URL-encoded query string

#License - #Source code - #Example Use -

SYNOPSIS

#include <librock/html.h>

char *
librock_HTTP_astrSetFieldUrlEncode(
    char **ppaszQueryString,
    const char *pszName,
    const char *pszValue
);


DESCRIPTION

Locate the first occurrence of the named field in the encoded query string, and replace the value. If does not occur, append to the query string.

Returns *ppasz.

To determine if URL-encoding or Value-Encoding is more appropriate consider what will be decoding the string first.

There is no way to ValueEncode a '&' in an anchor HREF hyperlink. (See the note in RFC1866 8.2.1. Any '&' will be taken as a field separator.) Using &#38; works usually.

Typical use is to modify an existing query string, or build one up from scratch. If field names are duplicated, use librock_HTTP_astrcatUrlEncode. This function will only modify the first matching field name.

#ifdef librock_TYPICAL_USE_HTTP_astrSetFieldUrlEncode
    char *asz = 0;
    librock_astrcpy(&asz,"file=some+value&file=not+replaced+value");
    librock_HTTP_astrSetFieldUrlEncode(&asz,"file","index.html");
    printf("%s\n",asz);
    librock_astrfree(&asz);
#endif

USES

  strlen() strncmp() strchr()
  librock_HTTP_astrcatUrlEncode()
  librock_astrcat() librock_astrn0cpy() librock_astrfree()
  librock_counttoch()

LICENSE

  Copyright 1998-2002 Forrest J. Cavalier III, http://www.mibsoftware.com
  Licensed under BSD-ish license, NO WARRANTY. Copies must retain this block.
  License text in <librock/license/librock.txt> librock_LIDESC_HC=12440211096131f5976d36be0cddca4cd9152e45

Source Code

./spec/infotool/www/html.c (implementation, plus source of this manual page)

Tests and Supported Platform Types

This is a representative sample. Librock code is highly portable. For a particular platform not reported here, request paid support

librock_HTTP_astrSetFieldUrlEncode passed tests in thtml (Unix/Linux/BSD: 2002/08/08 sys=FreeBSD using gcc)
librock_HTTP_astrSetFieldUrlEncode passed tests in thtml (WIN32: 2002/08/08 sys=NT 4.0 using MSVC)


This software is part of Librock

Rapid reuse, without rework. Details
This page copyright (C) 2002-2003 Forrest J. Cavalier III, d-b-a Mib Software, Saylorsburg PA 18353, USA

Verbatim copying and distribution of this generated page is permitted in any medium provided that no changes are made.
(The source of this manual page may be covered by a more permissive license which allows modifications.)

Want to help? We welcome comments, patches. -- Need help? Request paid support.