コード例 #1
0
ファイル: s_path.c プロジェクト: bryansum/ijam
    /* Open a help file using the help search path.  We expect the ".pd"
    suffix here, even though we have to tear it back off for one of the
    search attempts. */
void open_via_helppath(const char *name, const char *dir)
{
    char realname[MAXPDSTRING], dirbuf[MAXPDSTRING], *basename;
        /* make up a silly "dir" if none is supplied */
    const char *usedir = (*dir ? dir : "./");
    int fd;

        /* 1. "objectname-help.pd" */
    strncpy(realname, name, MAXPDSTRING-10);
    realname[MAXPDSTRING-10] = 0;
    if (strlen(realname) > 3 && !strcmp(realname+strlen(realname)-3, ".pd"))
        realname[strlen(realname)-3] = 0;
    strcat(realname, "-help.pd");
    if ((fd = do_open_via_path(dir, realname, "", dirbuf, &basename, 
        MAXPDSTRING, 0, sys_helppath)) >= 0)
            goto gotone;

        /* 2. "help-objectname.pd" */
    strcpy(realname, "help-");
    strncat(realname, name, MAXPDSTRING-10);
    realname[MAXPDSTRING-1] = 0;
    if ((fd = do_open_via_path(dir, realname, "", dirbuf, &basename, 
        MAXPDSTRING, 0, sys_helppath)) >= 0)
            goto gotone;

        /* 3. "objectname.pd" */
    if ((fd = do_open_via_path(dir, name, "", dirbuf, &basename, 
        MAXPDSTRING, 0, sys_helppath)) >= 0)
            goto gotone;
    post("sorry, couldn't find help patch for \"%s\"", name);
    return;
gotone:
    close (fd);
    glob_evalfile(0, gensym((char*)basename), gensym(dirbuf));
}
コード例 #2
0
ファイル: z_libpd.c プロジェクト: diegov/libpd
void *libpd_openfile(const char *basename, const char *dirname) {
  void * retval;
  sys_lock();
  pd_globallock();
  retval = (void *)glob_evalfile(NULL, gensym(basename), gensym(dirname));
  pd_globalunlock();
  sys_unlock();
  return retval;
}
コード例 #3
0
ファイル: s_main.c プロジェクト: Gaz5700/pd-double
static void openit(const char *dirname, const char *filename)
{
    char dirbuf[MAXPDSTRING], *nameptr;
    int fd = open_via_path(dirname, filename, "", dirbuf, &nameptr,
        MAXPDSTRING, 0);
    if (fd >= 0)
    {
        close (fd);
        glob_evalfile(0, gensym(nameptr), gensym(dirbuf));
    }
    else
        error("%s: can't open", filename);
}
コード例 #4
0
ファイル: PdInstance.cpp プロジェクト: didiercabrera/Camomile
 Patch Instance::createPatch(std::string const& name, std::string const& path)
 {
     Patch patch;
     t_canvas* cnv = nullptr;
     Pd::lock();
     pd_setinstance(reinterpret_cast<t_pdinstance *>(m_ptr));
     if(!name.empty() && !path.empty())
     {
         cnv = reinterpret_cast<t_canvas*>(glob_evalfile(NULL, gensym(name.c_str()), gensym(path.c_str())));
         cnv->gl_edit = 0;
     }
     else if(!name.empty())
     {
         cnv = reinterpret_cast<t_canvas*>(glob_evalfile(NULL, gensym(name.c_str()), gensym("")));
         cnv->gl_edit = 0;
     }
     if(cnv)
     {
         patch = Patch(*this, cnv, name, path);
     }
     Pd::unlock();
     return patch;
 }
コード例 #5
0
ファイル: s_main.c プロジェクト: flummingbird/pd
static void openit(const char *dirname, const char *filename)
{
    char dirbuf[FILENAME_MAX], *nameptr;
    int fd = open_via_path(dirname, filename, "", dirbuf, &nameptr,
        FILENAME_MAX, 0);
    if (fd >= 0)
    {
        close (fd);
        glob_evalfile(0, gensym(nameptr), gensym(dirbuf));
		sys_vgui("pdtk_set_current_dir %s\n", filename);
        //sys_vgui("::pd_menus::update_recentfiles_menu .mbar.file 0\n");
        sys_vgui("::pd_guiprefs::update_recentfiles %s 1\n", filename);
    }
    else
        error("%s: can't open", filename);
}
コード例 #6
0
ファイル: helplink.c プロジェクト: MatiasDelera/pd
static void helplink_doclick(t_helplink *x)
{
    char* objectname = x->x_ulink->s_name;
    char dirbuf[MAXPDSTRING], *nameptr;
    int fd = canvas_open(x->x_glist, objectname, "-help.pd",
                         dirbuf, &nameptr, MAXPDSTRING, 0);
    
    if (fd < 0) {
        /* if canvas_open() failed try open_via_helppath() */
        open_via_helppath(objectname, canvas_getdir(x->x_glist)->s_name);
    } else {
        /* if canvas_open() gave us a filehandle, then we have a helppatch to
         * open in dirbuf and nameptr, but we don't need the filehandle */
        close(fd);
        glob_evalfile(NULL, gensym(nameptr), gensym(dirbuf));
    }
}
コード例 #7
0
ファイル: s_path.c プロジェクト: Tzero2/pd
    /* Open a help file using the help search path.  We expect the ".pd"
    suffix here, even though we have to tear it back off for one of the
    search attempts. */
void open_via_helppath(const char *name, const char *dir)
{
    char realname[FILENAME_MAX], propername[FILENAME_MAX], dirbuf[FILENAME_MAX];
    char *basename;
        /* make up a silly "dir" if none is supplied */
    const char *usedir = (*dir ? dir : "./");
    int fd;

        /* 1. "objectname-help.pd" */
    strncpy(realname, name, FILENAME_MAX-10);
    realname[FILENAME_MAX-10] = 0;
    if (strlen(realname) > 3 && !strcmp(realname+strlen(realname)-3, ".pd"))
        realname[strlen(realname)-3] = 0;
    strcat(realname, "-help.pd");
    strncpy(propername, realname, FILENAME_MAX);
    if ((fd = do_open_via_path(dir, realname, "", dirbuf, &basename, 
        FILENAME_MAX, 0, sys_helppath)) >= 0)
            goto gotone;

        /* 2. "help-objectname.pd" */
    strcpy(realname, "help-");
    strncat(realname, name, FILENAME_MAX-10);
    realname[FILENAME_MAX-1] = 0;
    if ((fd = do_open_via_path(dir, realname, "", dirbuf, &basename, 
        FILENAME_MAX, 0, sys_helppath)) >= 0)
            goto gotone_deprecated;

        /* 3. "objectname.pd" */
    if ((fd = do_open_via_path(dir, name, "", dirbuf, &basename, 
        FILENAME_MAX, 0, sys_helppath)) >= 0)
            goto gotone_deprecated;
    post("sorry, couldn't find help patch for \"%s\"", name);
    return;
gotone_deprecated:
    error("'%s' is a deprecated name format for a help patch.\n\tPlease rename to '%s'!",
          basename, propername);
gotone:
    close (fd);
    glob_evalfile(0, gensym((char*)basename), gensym(dirbuf));
}
コード例 #8
0
ファイル: z_libpd.c プロジェクト: Carambaman/libpd
void *libpd_openfile(const char *basename, const char *dirname) {
  return (void *)glob_evalfile(NULL, gensym(basename), gensym(dirname));
}