Ruby: include/ruby/internal/encoding/sprintf.h File Reference

Ruby 3.2.5p208 (2024-07-26 revision 31d0f1a2e7dbfb60731d1f05b868e1d578cda493)

Functions
sprintf.h File Reference

Routines to manipulate encodings of symbols. More...

`#include "ruby/internal/config.h"`
`#include <stdarg.h>`
`#include "ruby/internal/attr/format.h"`
`#include "ruby/internal/attr/nonnull.h"`
`#include "ruby/internal/attr/noreturn.h"`
`#include "ruby/internal/dllexport.h"`
`#include "ruby/internal/encoding/encoding.h"`
`#include "ruby/internal/value.h"`

Go to the source code of this file.

## Functions
VALUE | rb_enc_sprintf (rb_encoding *enc, const char *fmt,...)
| Identical to rb_sprintf(), except it additionally takes an encoding.
VALUE | rb_enc_vsprintf (rb_encoding *enc, const char *fmt, va_list ap)
| Identical to rb_enc_sprintf(), except it takes a `va_list` instead of variadic arguments.
void | rb_enc_raise (rb_encoding *enc, VALUE exc, const char *fmt,...)
| Identical to rb_raise(), except it additionally takes an encoding.

## Detailed Description

Routines to manipulate encodings of symbols.

Author
  Ruby developers ruby-.nosp@m.core.nosp@m.@ruby.nosp@m.-lan.nosp@m.g.org

Copyright
  This file is a part of the programming language Ruby. Permission is hereby granted, to either redistribute and/or modify this file, provided that the conditions mentioned in the file COPYING are met. Consult the file for details.

Warning
  Symbols prefixed with either `RBIMPL` or `rbimpl` are implementation details. Don't take them as canon. They could rapidly appear then vanish. The name (path) of this header file is also an implementation detail. Do not expect it to persist at the place it is now. Developers are free to move it anywhere anytime at will.

Note
  To ruby-core: remember that this header can be possibly recursively included from extension libraries written in C++. Do not expect for instance `__VA_ARGS__` is always available. We assume C99 for ruby itself but we don't assume languages of extension libraries. They could be written in C++98.

Definition in file sprintf.h.

## Function Documentation

## ◆ rb_enc_sprintf()

VALUE rb_enc_sprintf | ( | rb_encoding * | enc,
|  | const char * | fmt,
|  |  | ... )

Identical to rb_sprintf(), except it additionally takes an encoding.

The passed encoding rules both the incoming format specifier and the resulting string.

Parameters

  [in] | enc | Encoding of `fmt`.
  [in] | fmt | A `printf`-like format specifier.
  [in] | ... | Variadic number of contents to format.

Returns
  A rendered new instance of rb_cString, of `enc` encoding.

Definition at line 1200 of file sprintf.c.

Referenced by rb_str_format().

## ◆ rb_enc_vsprintf()

VALUE rb_enc_vsprintf | ( | rb_encoding * | enc,
|  | const char * | fmt,
|  | va_list | ap )

Identical to rb_enc_sprintf(), except it takes a `va_list` instead of variadic arguments.

It can also be seen as a routine identical to rb_vsprintf(), except it additionally takes an encoding.

Parameters

  [in] | enc | Encoding of `fmt`.
  [in] | fmt | A `printf`-like format specifier.
  [in] | ap | Contents to format.

Returns
  A rendered new instance of rb_cString, of `enc` encoding.

Definition at line 1181 of file sprintf.c.

Referenced by rb_enc_raise(), rb_enc_sprintf(), rb_loaderror(), rb_loaderror_with_path(), and rb_vsprintf().