about summary refs log tree commit diff stats
path: root/056shape_shifting_recipe.cc
Commit message (Expand)AuthorAgeFilesLines
* 3392Kartik K. Agaram2016-09-171-2/+23
* 3390Kartik K. Agaram2016-09-171-4/+4
* 3389Kartik K. Agaram2016-09-171-31/+31
* 3385Kartik K. Agaram2016-09-171-66/+66
* 3379Kartik K. Agaram2016-09-171-3/+3
* 3376 - start maximally using all type abbreviationsKartik K. Agaram2016-09-171-4/+4
* 3346Kartik K. Agaram2016-09-131-1/+6
* 3311Kartik K. Agaram2016-09-101-1/+0
* 3309Kartik K. Agaram2016-09-091-91/+39
* 3279Kartik K. Agaram2016-08-291-1/+1
* 3259Kartik K. Agaram2016-08-261-1/+1
* 3120Kartik K. Agaram2016-07-211-2/+2
* 3108Kartik K. Agaram2016-07-101-1/+1
* 3101 - purge .traces/ dir from repo historyKartik K. Agaram2016-07-051-2/+0
* 3040 - improve an error messageKartik K. Agaram2016-06-091-8/+8
* 3022Kartik K. Agaram2016-05-271-0/+1
* 3006Kartik K. Agaram2016-05-241-0/+7
* 3003Kartik K. Agaram2016-05-241-0/+30
* 3001Kartik K. Agaram2016-05-241-6/+7
* 3000Kartik K. Agaram2016-05-241-1/+1
* 2990Kartik K. Agaram2016-05-201-9/+9
* 2987Kartik K. Agaram2016-05-201-0/+1073
hlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
#include "debugprint.h"
#include "common.h"
#include "fs.h"

static File* gFile = NULL;

void Debug_initialize(const char* fileName) {
    FileSystemNode* node = getFileSystemNode(fileName);

    gFile = open_fs(node, 0);
}

void Debug_PrintF(const char *format, ...) {
    char **arg = (char **) &format;
    char c;
    char buf[20];
    char buffer[512];

    int bufferIndex = 0;

    //arg++;
    __builtin_va_list vl;
    __builtin_va_start(vl, format);

    while ((c = *format++) != 0) {
        if (bufferIndex > 510) {
            break;
        }

        if (c != '%')
          buffer[bufferIndex++] = c;
        else {
            char *p;

            c = *format++;
            switch (c) {
              case 'x':
                 buf[0] = '0';
                 buf[1] = 'x';
                 //itoa (buf + 2, c, *((int *) arg++));
                 itoa (buf + 2, c, __builtin_va_arg(vl, int));
                 p = buf;
                 goto string;
                 break;
              case 'd':
              case 'u':
                //itoa (buf, c, *((int *) arg++));
                itoa (buf, c, __builtin_va_arg(vl, int));
                p = buf;
                goto string;
                break;

              case 's':
                //p = *arg++;
                p = __builtin_va_arg(vl, char*);
                if (! p)
                  p = "(null)";

              string:
                while (*p)
                  buffer[bufferIndex++] = (*p++);
                break;

              default:
                //buffer[bufferIndex++] = (*((int *) arg++));
                buffer[bufferIndex++] = __builtin_va_arg(vl, int);
                break;
              }
          }
      }

    buffer[bufferIndex] = '\0';

    if (gFile) {
        write_fs(gFile, strlen(buffer), (uint8*)buffer);
    }

    __builtin_va_end(vl);
}
t;resource", RESOURCE_ONLINE, NULL, 10); expect_memory(ui_contact_online, barejid, barejid, sizeof(barejid)); expect_memory(ui_contact_online, resource, resource, sizeof(resource)); expect_value(ui_contact_online, last_activity, NULL); sv_ev_contact_online(barejid, resource, NULL, NULL); roster_destroy(); plugins_shutdown(); } void handle_offline_removes_chat_session(void **state) { plugins_init(); roster_create(); roster_process_pending_presence(); chat_sessions_init(); char *barejid = "friend@server.chat.com"; char *resource = "home"; roster_add(barejid, "bob", NULL, "both", FALSE); Resource *resourcep = resource_new(resource, RESOURCE_ONLINE, NULL, 10); roster_update_presence(barejid, resourcep, NULL); chat_session_recipient_active(barejid, resource, FALSE); ProfConsoleWin *console = malloc(sizeof(ProfConsoleWin)); will_return(win_create_console, &console->window); wins_init(); sv_ev_contact_offline(barejid, resource, NULL); ChatSession *session = chat_session_get(barejid); assert_null(session); roster_destroy(); chat_sessions_clear(); plugins_shutdown(); } void lost_connection_clears_chat_sessions(void **state) { roster_create(); roster_process_pending_presence(); chat_sessions_init(); chat_session_recipient_active("bob@server.org", "laptop", FALSE); chat_session_recipient_active("steve@server.org", "mobile", FALSE); expect_any_cons_show_error(); sv_ev_lost_connection(); ChatSession *session1 = chat_session_get("bob@server.org"); ChatSession *session2 = chat_session_get("steve@server.org"); assert_null(session1); assert_null(session2); }