Github User Fetcher 1.0.0
C Application with Server and GUI
Loading...
Searching...
No Matches
duktape-1.8.0/examples/guide/uppercase.c
Go to the documentation of this file.
1/* uppercase.c */
2#include <stdio.h>
3#include <stdlib.h>
4#include "duktape.h"
5
6static int dummy_upper_case(duk_context *ctx) {
7 size_t sz;
8 const char *val = duk_require_lstring(ctx, 0, &sz);
9 size_t i;
10
11 /* We're going to need 'sz' additional entries on the stack. */
12 duk_require_stack(ctx, sz);
13
14 for (i = 0; i < sz; i++) {
15 char ch = val[i];
16 if (ch >= 'a' && ch <= 'z') {
17 ch = ch - 'a' + 'A';
18 }
19 duk_push_lstring(ctx, (const char *) &ch, 1);
20 }
21
22 duk_concat(ctx, sz);
23 return 1;
24}
25
26int main(int argc, char *argv[]) {
27 duk_context *ctx;
28
29 if (argc < 2) { exit(1); }
30
32 if (!ctx) { exit(1); }
33
35 duk_push_string(ctx, argv[1]);
36 duk_call(ctx, 1);
37 printf("%s -> %s\n", argv[1], duk_to_string(ctx, -1));
38 duk_pop(ctx);
39
41 return 0;
42}
DUK_EXTERNAL void duk_concat(duk_context *ctx, duk_idx_t count)
DUK_EXTERNAL const char * duk_push_string(duk_context *ctx, const char *str)
DUK_EXTERNAL void duk_require_stack(duk_context *ctx, duk_idx_t extra)
DUK_EXTERNAL const char * duk_push_lstring(duk_context *ctx, const char *str, duk_size_t len)
DUK_EXTERNAL duk_idx_t duk_push_c_function(duk_context *ctx, duk_c_function func, duk_int_t nargs)
DUK_EXTERNAL void duk_destroy_heap(duk_context *ctx)
DUK_EXTERNAL const char * duk_require_lstring(duk_context *ctx, duk_idx_t index, duk_size_t *out_len)
DUK_EXTERNAL void duk_call(duk_context *ctx, duk_idx_t nargs)
DUK_EXTERNAL const char * duk_to_string(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL void duk_pop(duk_context *ctx)
#define duk_create_heap_default()
static int dummy_upper_case(duk_context *ctx)
int main(void)
Definition sanitycheckc.c:1
#define printf