Ruby  3.4.0dev (2024-11-05 revision 348a53415339076afc4a02fcd09f3ae36e9c4c61)
Functions
sprintf.h File Reference

(348a53415339076afc4a02fcd09f3ae36e9c4c61)

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"
Include dependency graph for sprintf.h:
This graph shows which files directly or indirectly include this file:

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. More...
 
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. More...
 
void rb_enc_raise (rb_encoding *enc, VALUE exc, const char *fmt,...)
 Identical to rb_raise(), except it additionally takes an encoding. More...
 

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
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]encEncoding of fmt.
[in]fmtA 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 1198 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]encEncoding of fmt.
[in]fmtA printf-like format specifier.
[in]apContents to format.
Returns
A rendered new instance of rb_cString, of enc encoding.

Definition at line 1179 of file sprintf.c.

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